JQuery живой клик срабатывает более одного раза - PullRequest
2 голосов
/ 02 апреля 2011

У меня есть этот код для ajax страницы при поиске нажмите:

$.ajax({
    url: "ClientsList.asp",
    type: "POST",
    data: "name=" + Name + "&org=" + Org + "&job=" + Job + "&type=" + Type,
    success: function(msg){
        $("#SRP").html(msg);
        $("#Loading").fadeOut("noraml",function(){
            $("#SRP").fadeIn();
        });

    }
});

тогда в загруженном контенте у меня есть флажки, которые мне нужно перехватить, поэтому я делаю это с помощью этого кода

$(".SearchResultSelectBox").live("click", function(event) {
    $(this).is(":checked") ? DoCheckSelect($(this).attr("rel")) : unDoCheckSelect($(this).attr("rel"));
});

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

Я попытался "вернуть ложь", но потом это сработало, но флажок не нажимался

Что можно сделать?

НИКОГДА НЕ УМ! У меня была ошибка, у меня был второй набор функций внутри первого, поэтому каждый раз, когда я выполнял функцию поиска, я снова делал внутреннюю функцию для живого клика

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

Попробуйте

event.stopPropagation();

$(".SearchResultSelectBox").live("click", function(event) {
    $(this).is(":checked") ? DoCheckSelect($(this).attr("rel")) : unDoCheckSelect($(this).attr("rel"));
    event.stopPropagation();
});
1 голос
/ 02 апреля 2011

можно попробовать использовать

отвязать ( 'нажмите');

и связывайте его снова для каждого запроса ajax

...