私のために書かれたこれらのコードは、それを閉じても動作していません。私のコードでは間違っています。 "box-search"、 "login"、 "register"要素のID名。これらの私のコード私は書かれたユーザーがモーダルの外側のどこかをクリックすると閉じますが、それは動作していません。何かが私のコードで間違っています
答えて
あなたはループを反復するたびに、あなたはwindow.onclick
のための最後の値を一掃し、その値として、新たな機能を設定しています。イベントハンドラを登録するには.addEventListener()
を使用してください。
i
が高いレベルで宣言されているため、コールバック関数でi
が使用されているため、その周りにクロージャが作成されているという問題がありました。閉鎖の詳細はhereです。ループが終了したときに最後の値がi
に設定されているため、クロージャによってイベント処理関数はすべてmodal[3]
を探していました。
閉鎖を回避し、window.onclick
の上書きを修正するために、スクリプトは次のようになります。[ループ内のJavaScriptの閉鎖 - シンプルな実用的な例]の
<script>
// Use modern standards to set up event handlers:
window.addEventListener("click", testModal)
function testModal(event){
var modal = ["box-search","login","register"];
// Use the built-in Array.prototype.forEach method to loop
// through the array elements, thus avoiding a numeric counter
modal.forEach(function(element){
// Search the DOM for elements that have id'sthat
// match the modal array's id's
var el = document.getElementById(element);
// Check the found element
if (event.target == el) {
el.style.display = "none";
}
});
}
</script>
その作業。ありがとうございます。 – Baswaraj
@Baswarajよろしくお願いします。あなたを助けた答えを投票するのを忘れないでください。 –
あなたwindow.onClickが間違っている:機能外あなたのモーダルの
の1-あなたループ、あなたはそれを動作させるために内部に行う必要があります正しく
2 - あなたとevent.target比較モーダル配列要素ではなく、それはidが
、3-だあなたは(モーダル[i])としていない、あなたのevent.targetオブジェクトに文字列にスタイルを割り当てよう
これは再です書かれた関数(それが動作するはずです)
window.onclick = function(event) {
for(var i=0;i<3;i++) {
if (event.target.id == modal[i]) {
event.target.style.display="none";
}
}
}
- 1. このvhdlコードは私がしたいことをしません。何が間違っていますか?
- 2. 私のコードでどこが間違っていましたか?
- 3. ここに私のコードの何が間違っています
- 4. この小さなコードのForEach Replaceは、私が期待したことをしません。私はここで間違って何をしていますか?
- 5. 私のサイトのコードで何が間違っていますか?
- 6. 私はそれが私の活動またはアプリケーションが閉じた後も継続して使用する私の活動は私のコードがある。ここ
- 7. 私はこのプログラムで何が間違っていますか?
- 8. 私のCSSコードで何が間違っていますか?
- 9. 私のコードで何が間違っていますか?
- 10. 私のコードで何が間違っていますか? Tweepy
- 11. Pythonで私のコードに何が間違っていますか?
- 12. Odoo 8私のコードで何が間違っていますか?
- 13. 私のコードはFirefoxとEdgeでは動作しますがChromeでは動作しませんが、どこが間違っていますか?
- 14. 私のBashコードでは何が起こっていますか?
- 15. ポップアップスライダがIEで動作しません。私のコードで何が間違っていますか?
- 16. 私のHaskellコードに何が間違っていますか?
- 17. このコードはどこが間違っていますか
- 18. このコードでどこが間違っていましたか
- 19. 誰かが私にこのPythonコードで何が間違っていると教えてもらえますか?
- 20. Pythonは - だから私はこのコードを持っている...私は一体これと間違っているかわからないが、私は全くそれを把握することはできませんGPSの経度と緯度
- 21. 誰かが私にこのコードの何が間違っているか教えてもらえますか?
- 22. 私はこのコードを書いて、フォームが表示されています。しかし、スクリプトの部分が動作していない、誰もそれが間違っていることを見つけることができますか?
- 23. 誰も私にこのコードで何が間違っていると言うことができましたか?
- 24. このコードは何が間違っていますか?
- 25. ここで私はこのC++コードで間違っていましたか?そして、私が知るべきベストプラクティスは何ですか?
- 26. 私のjava yahtzeeゲームで私のコードに何が間違っていますか?
- 27. 私はこのコードをJavaScriptで書いていますが、間違っていますか?
- 28. 私はこのコードで何が間違っているのか分かりません。
- 29. 間違ったユーザー名を入力しても何も起こりません。私のコードで何が間違っていますか?
- 30. フィボナッチシリーズを書くための私のこのJavascriptコードで何が間違っていますか?
可能な複製(http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – Xufox
ループを反復するたびに、 'window.onclick'の最後の値を一掃し、その値として新しい関数を設定します。 '.addEventListener()'を使ってイベントハンドラを登録してください。 –