Код jQuery не работает при нормальном запуске. Но я делаю с активными контрольными точками - PullRequest
2 голосов
/ 21 апреля 2010

В моем приложении указан следующий код:

$(".deleteproduct").click(function() {
    id = this.id;
    alert("id: " + id);
});

Если я запускаю свой сайт, ничего не происходит, когда я нажимаю на элемент с классом deleteproduct. Но когда я ставлю точки останова перед строками 1, 2 и 3, это работает как талисман.

Элементы с классом deleteproduct загружаются через вызов AJAX сразу за $ (document) .ready (function (). Код .click находится под ним.

Это кажется мне очень странным. Это работает, если в Firebug используются точки останова, но не тогда, когда их нет ...

Ответы [ 3 ]

5 голосов
/ 21 апреля 2010

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

$(".deleteproduct").live('click', function(){
    id = this.id;
    alert("id: "+id);
});

или поместите указанную выше функцию в обратный вызов Ajax.

0 голосов
/ 21 апреля 2010
$(document).ready(function(){
    $(".deleteproduct").click(function(){
        var id = $(this).attr('id');
        alert("id: "+id);
    });
});
0 голосов
/ 21 апреля 2010

Звучит для меня как состояние гонки. Вы помните, чтобы поместить этот код внутри

$().ready(function(){
    ....
});

Это значит, что документ полностью загружен, прежде чем вы попытаетесь выполнить сценарий для DOM.

...