jQuery live (), 1 мышь нажала, но я получил 2 события? - PullRequest
0 голосов
/ 04 ноября 2011

У меня какая-то странная вещь, происходящая с моим JavaScript.Я выбираю данные со стороны сервера, и когда результат возвращается, я обновляю свой div с данными в моей таблице.Затем я вызываю postUpdate и привязываю функцию к каждой строке в таблице.

jQuery.fn.postUpdate = function(id) {
    console.log('postUpdate with id: '+id);
    if (id == "myContent") {
        jQuery('#DataTable tr').live(
                'click',
                function(event) {
                    jQuery.fn.showDetails(event);                        
        });
    }
};    

jQuery.fn.showDetails = function(event) {
    console.log(event);
};

Однако каждый раз, когда я нажимаю на строку, я получаю событие, напечатанное дважды?* В чем здесь дело?Ошибка в jQuery?

1 Ответ

2 голосов
/ 04 ноября 2011

Каждый раз, когда вы звоните postUpdate, вы добавляете дополнительный живой обработчик.

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

...