如果$ .post()响应有错误,下面的我的脚本会生成一个url。我试图使用.on(),以便我可以将函数附加到生成的URL,但它不起作用。当我在DOM中添加URL(没有$ .post)时,它就像一个魅力,如果在$ .post()中生成url,它就不想工作。关于如何使其发挥作用的任何想法或解决方案?
// Do the database check:
$.post("test.php",{searchFor : search},function(data) {
if(data.response == true) {
// DO SOME STUFF
} else if(data.response == false && data.error == "noDoc") {
$("#resultsTable").html("<tr><td colspan='6'><p><strong>No user found, <a href='#' class='addDoctor'>Click here</a> to add a doctor.</strong></p></tr>");
} else {
$("#resultsTable").html("<tr><td colspan='6'><p><strong>"+data.error+"</strong></p></tr>");
}
});
});
$(".addDoctor").on("click",function() {
alert("test");
return false;
});
答案 0 :(得分:2)
$('.test')
,在DOM中搜索名为“test”的类的所有元素,并为它们添加一个单击侦听器。这只会影响执行.on
调用时可以找到的元素(即实际点击发生时不)。
如果您在调用.on
之后添加了测试类的元素,则需要调用.on
作为所有元素的父元素.test
元素,永远不会被销毁:
$(document).on('click', '.test', function() {
alert('test');
});
为获得最佳性能,请选择最接近的父级,以便必须搜索DOM的较小部分以查找符合条件的元素。在这里使用document
不一定是理想的,但是在不知道你的DOM的情况下,它是我能够假设的最接近的。
答案 1 :(得分:0)
你可能想要这样的东西:
$(".addDoctor").on("click", function(event){
alert("test");
});