2017-09-12 7 views
1

divに関数を動的にアタッチし、イベントも渡す必要があります。FireFox - 動的に追加された機能にイベントを添付しますか?

Chrome/IEでは動作しますが、FireFoxでは動作しません。私はFireFoxのコンソールで次のエラーを取得しています

にReferenceError:イベントは

が定義されていないがこれはどのように解決することができますか?

CodePen:https://codepen.io/dsomekh/pen/YrKmaR

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<style> 
.example{ 
cursor:pointer; 
border:1px solid black; 
text-align:center; 
} 
</style> 

<script> 
window.onload = function() { 
var div = $(".example"); 
div.click(function() {Test(event);}); 

} 

function Test (event) 
{ 
    alert(event); 
} 

</script> 
<html> 
<div class="example">When clicking on this div, you should get an alert with the event details. This does not work in FireFox.</div> 
</html> 
+0

これは、動的な要素とは何の関係もないのだが、Firefoxは世界をサポートしていないためだけで起こりますイベントオブジェクト。 – adeneo

答えて

2

あなたが試してみました:Firefoxはグローバルイベントオブジェクトをサポートしていません

div.on("click",function(e) {Test(e);}); 
+0

ありがとう!ワーキング。 –

1

、それはイベントが引数

window.onload = function() { 

    var div = $(".example"); 

    div.click(function(event) { // needs to be here 
     Test(event); 
    }); 

} 

function Test (event){ 
    alert(event); 
} 
として渡されている必要があり

また、関数を参照するだけでよい場合は、

div.click(Test); 

だから、

$(function() { 
 
    $(".example").on('click', Test) 
 
}); 
 

 
function Test (event) { 
 
    console.log(event); 
 
}
.example{ 
 
cursor:pointer; 
 
border:1px solid black; 
 
text-align:center; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="example">When clicking on this div, you should get an alert with the event details. This does not work in FireFox.</div>

を取得したいと、それはそれ

+0

おそらくcodepenまたはJsFiddleを投稿できますか? –

+0

スタックスニペットを追加 – adeneo

+0

優秀、ありがとう!ワーキング。 –

関連する問題