0

如果 $.post() 响应有错误,我的下面的脚本会生成一个 url。我正在尝试使用 .on() 以便可以将函数附加到生成的 URL,但它不起作用。当我在 DOM 中添加 URL(没有 $.post)时,它就像一个魅力,如果 url 是在 $.post() 中生成的,它只是不想工作。关于如何让它工作的任何想法或解决方案?

// 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;
});
4

2 回答 2

2

$('.test')在您的代码中,在您的 DOM 中搜索所有具有名为“test”的类的元素,并为它们添加一个点击侦听器。这只会影响.on执行调用时可以找到的元素(即,不会在实际单击发生时)。

如果您在调用之后使用测试类添加元素,.on则需要调用.on一个元素,该元素将成为所有元素的父.test元素,并且永远不会被破坏:

$(document).on('click', '.test', function() {
    alert('test');
});

为了获得最佳性能,请选择最接近的父级,以便必须在 DOM 的较小部分中搜索符合条件的元素。这里的使用document不一定是理想的,但它是我可以假设的最接近的,不知道你的 DOM。

于 2012-01-16T11:30:06.667 回答
0

你可能想要这样的东西:


$(".addDoctor").on("click", function(event){
    alert("test");
});

于 2012-01-16T11:28:41.857 回答