私は、画面上のクリックをリッスンし、コールバックを起動する関数を持っています。それは私のサンプルコードで用語ヘルパーによって先行される理由である(ヘルパーオブジェクトの一部である。すなわち、しかし無関係である。コールバック関数へのパラメータの受け渡し
var Helper = {
bodyClickListener: function(fn) {
var window = document.getElementsByTagName('body')[0];
window.click();
CORE.dom.on(window, 'click', function(event) {
CORE.dom.off(window, 'click');
fn(event);
});
}
}
私はそのパラメータと、この関数に関数を通過できるようにする必要があります以前作品上記のコード
function someFunction() {
var popup = document.getElementById('tagResultsPopup');
Helper.bodyClickListener(function(popup) {
return function(event) {
event.stopPropagation();
removePopup(popup);
};
}(document.getElementById('tagResultsPopup')));
function removePopup(element) {
if(element) {
element.parentNode.removeChild(element);
}
};
}
。設定されているが、あなたは、私は、コールバック関数の内部でポップアップ変数を設定する必要があることに気づくでしょう。それはすでにどのように私はへの参照を渡すん。上記設定されていますコールバック関数の前の変数。
私はこれが本当だったと思うが、残念ながらそれは動作しません。 bodyClickListenerは、popup変数と同じ関数内にありません。私は関数を呼び出して関数に渡します。 – ryandlf
@ryandlfそれはあなたの質問から非常に明確ではありません。それでは、なぜあなたはどうして**要素をもう一度手に入れることができないのですか? – gideon
申し訳ありませんが、私はあなたを混乱させていると思います。 Helper.bodyClickListenerはPopup変数と同じ機能ですが、Helper.bodyClickListenerが呼び出す実際の関数はHelperオブジェクトにあります。私はそれが変数が渡されない理由と何か関係があるかどうかは分かりません。 – ryandlf