jQuery .on没有从jQuery $ .post识别url

时间:2012-01-16 11:23:07

标签: jquery ajax .post jquery-post

如果$ .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;
});

2 个答案:

答案 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");
});