正常运行时jQuery代码不起作用。但我确实激活了断点

时间:2010-04-20 22:03:34

标签: jquery firebug breakpoints

我的应用程序中有以下代码:

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

如果我运行我的网站,当我点击具有类deleteproduct的元素时,没有任何反应。但是当我在第1,2和3行之前放置断点时,它就像一个魅力。

具有类deleteproduct的元素通过AJAX调用加载到$(document).ready(function()后面。.click代码位于它下面。

这对我来说似乎很奇怪。如果使用Firebug中的断点,它会起作用,但是当没有断点时......

3 个答案:

答案 0 :(得分:5)

如果您通过Ajax加载.deleteproduct元素,则可能需要使用jQuery的live事件处理程序来定义click函数。

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

或将上面的函数放在Ajax回调中。

答案 1 :(得分:0)

对我来说听起来像是一场竞争。 您是否记得将该代码放入

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

这样,在您尝试针对DOM编写脚本之前,文档已完全加载。

答案 2 :(得分:0)

$(document).ready(function(){
    $(".deleteproduct").click(function(){
        var id = $(this).attr('id');
        alert("id: "+id);
    });
});