2017-09-12 1 views
1

Je dois attacher dynamiquement une fonction à un div et passer aussi l'événement.FireFox - Attacher un événement à une fonction ajoutée dynamiquement?

Il fonctionne sous Chrome/IE, mais pas FireFox.

Je reçois l'erreur suivante dans la console FireFox: ReferenceError: événement n'est pas défini

Comment cela peut-il être résolu?

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

Cela n'a rien à voir avec des éléments dynamiques, mais seulement parce que Firefox arrive ne supporte pas le monde objet d'événement. – adeneo

Répondre

2

Avez-vous essayé:

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

Merci! Travail. –

1

Firefox ne supporte pas l'objet événement mondial, il a besoin d'avoir l'événement passé comme argument

window.onload = function() { 

    var div = $(".example"); 

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

} 

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

Vous pouvez également simplement référencer la fonction, et faire

div.click(Test); 

Vous obtiendrez

$(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>

et c'est tout

+0

Pouvez-vous poster peut-être un codepen ou JsFiddle? –

+0

Ajout d'une pile-extrait – adeneo

+0

Excellent, merci! Travail. –