2013-09-30 16 views
11

Mam <ul> element, który dynamicznie generuje <li> elementy i po prostu chcesz uruchomić onclick wydarzeniejQuery do „kliknięcia” element LI

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

Mam następujące jQuery w bloku ale $(document).ready to nie działa - jakieś pomysły, co robię źle?

$("li .searchterm").click(function() { 
    console.log("testing"); 
}); 
+1

nazwę klasy powinien być dodany razem z elementem. 'li.searchterm' –

Odpowiedz

13

jeśli dodać dinamically umieścić kliknięcie na liście, ale wybierz elementy:

$("#results").on("click", ".searchterm", function(event){ 
    console.log('clicked'); 
}); 

spróbować na skrzypcach: http://jsfiddle.net/emPKS/

9

Usuń przestrzeń w selektorze

$("li.searchterm").click(function() {  
    console.log('testing'); 
}); 

i można również użyć .on dołączyć konkretne zdarzenie dopasowanych elementów

$("li.searchterm").on("click",function() {  
    console.log('testing'); 
}); 

Js Fiddle

+2

omg .. czy po prostu sprawiłem, że EPIC zawiodło, a potem lol :-) dzięki Sachin - bardzo doceniamy! – Zabs

4

Korzystając .on()

Ponieważ treść jest dodawana dynamicznie, więc nie jest dostępna bezpośrednio, więc musisz użyć delegowania wydarzeń.

$('#results').on('click','li.searchterm',function() {  
    console.log('testing'); 
}); 
+0

wow tak wiele szybkich odpowiedzi - dzięki Tushar – Zabs

+0

@Zabs welcome Z przyjemnością pomożemy :) –

1
$("li.searchterm").on('click',function() {  
    console.log('testing'); 
}); 
2

Albo zrobić

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

A Javascrip

function clickFunc(id) { 
    console.log('Do something with ' + id); 
} 
0

Można to zrobić bez przypisywania identyfikatora Wysogotowo koło Poznania ul

$('ul').on('click','li.searchterm',function(){ 
//do your stuffhere; 
});