J'ai un élément <ul>
qui génère dynamiquement les éléments <li>
et je veux simplement exécuter un événement onclick
<ul id="results">
<li class="device_result searchterm" data-url="Apple-iphone-5s">
<a href="#"> Apple iPhone 5s </a>
</li>
<li class="device_result searchterm" data-url="Apple-iphone-5c">
<a href="#"> Apple iPhone 5s </a>
</li>
</ul>
J'ai le jQuery suivant dans un bloc $(document).ready
mais cela ne semble pas fonctionner - des idées sur ce que je fais mal?
$("li .searchterm").click(function() {
console.log("testing");
});
si vous ajoutez dinamically, cliquez sur la liste mais sélectionnez les éléments:
$("#results").on("click", ".searchterm", function(event){
console.log('clicked');
});
essayez sur le violon: http://jsfiddle.net/emPKS/
Supprimer l'espace dans le sélecteur
$("li.searchterm").click(function() {
console.log('testing');
});
et Vous pouvez également utiliser .on
pour attacher l'événement spécifique aux éléments correspondants.
$("li.searchterm").on("click",function() {
console.log('testing');
});
Utilisez .on ()
Comme votre contenu est ajouté de manière dynamique, il n'est donc pas directement accessible. Vous devez donc utiliser la délégation d'événements.
$('#results').on('click','li.searchterm',function() {
console.log('testing');
});
Soit faire
$( "li .searchterm" ).on('click', function() {
console.log('testing');
});
OR
<li class="device_result searchterm" data-url="Apple-iphone-5s" onclick="clickFunc(1)">
<a href="#">Apple iPhone 5s</a>
</li>
<li class="device_result searchterm" data-url="Apple-iphone-5c" onclick="clickFunc(2)">
<a href="#">Apple iPhone 5s</a>
</li>
Et le javascrip
function clickFunc(id) {
console.log('Do something with ' + id);
}
$( "li.searchterm" ).on('click',function() {
console.log('testing');
});
Vous pouvez le faire sans affecter id à ul
$('ul').on('click','li.searchterm',function(){
//do your stuffhere;
});