Как правильно связывать события в jQuery?


Например, в php у меня есть список клиентов:

foreach($clients as $client)
    echo '<li id="client_'.$client->id.'">' . $client->name . '</li>';

Как правильно привязать событие щелчка к каждому элементу списка без использования

onclick="my_function(the_elements_id)"

Прямо в пункте списка.

Author: ws0x9, 2009-11-10

4 answers

Предполагая, что у вас есть ul с идентификатором="список клиентов"

$("#client_list li").click(function()
{
    var myid = $(this).attr("id"); // the clicked on items id
    // do your thing here.

}):
 4
Author: John Boker, 2009-11-10 14:16:28

И очень классный "живой" способ привязки для всех текущих и будущих согласованных элементов. Это удобно, если вы используете Ajax, и вам нужно повторно привязать событие, скажем, к изображению, которое вы получаете через ajax.

Дополнительная информация @ http://docs.jquery.com/Events/live#typefn

$("p").live("click", function(){
  alert( $(this).text() );
});
 4
Author: epitka, 2009-11-10 14:23:41

Вы также можете использовать .bind

Например,

$('#item').bind("click", function() { do something; });
 1
Author: Jimmeh, 2009-11-10 14:18:59
$(document).ready(function(){

    $("li).click(function(){
        var id = $(this).attr("id");
        your_function(id); //The function you want to run with the object's ID as a parameter.
    });

});
 0
Author: BraedenP, 2009-11-10 14:18:15