私はこの種の質問がたくさん聞かれるのを知っていますが、私はまだこの作業を正しく行う方法を見つけることができませんでした。Javascript Closure Problem
コード:
function doStuff() {
for (var i = 0; i< elementsList.length; i++) {
elementsList[i].previousSibling.lastChild.addEventListener("click", function(){
toggle(elementsList[i])}, false);
}
} // ends function
function toggle (element) {
alert (element);
}
問題はトグル機能に変数を渡すことです。このキーワードで動作しますが(これはクリックされた項目への参照を送信しますが、この場合は役に立たない)、Firefoxでは未定義と警告するelementsList [i]では使用できません。
私が理解しているように、関数を呼び出すために匿名関数を使用すると、クロージャの問題に対処するだけで十分です。
の{よりさん}それがさらに2つを持っている...あなたが投稿したコードに問題があるのです。すべてのコードを貼り付けることに失敗しましたか?あなたはあまりにも多く貼り付けたのでしょうか? – Flimzy
dup:http://stackoverflow.com/questions/6492564/webkit-executesql-sentence-and-loop-problem/ http://stackoverflow.com/questions/6495156/jquery-cant-get-my-head-around - この – davin
の可能な複製[Javascript:closure of loop?](http://stackoverflow.com/questions/5555464/javascript-closure-of-loop) –