我的应用程序中有以下代码:
$(".deleteproduct").click(function() {
id = this.id;
alert("id: " + id);
});
如果我运行我的网站,当我点击具有类deleteproduct的元素时,没有任何反应。但是当我在第1,2和3行之前放置断点时,它就像一个魅力。
具有类deleteproduct的元素通过AJAX调用加载到$(document).ready(function()后面。.click代码位于它下面。
这对我来说似乎很奇怪。如果使用Firebug中的断点,它会起作用,但是当没有断点时......
答案 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);
});
});