我要在单击按钮时将从ajax调用返回的HTML部分附加到代码中的div元素中。

然后,我想通过jQuery访问那些id / class选择器。

例如....

基本HTML

<div id="codeToGoHere"></div>


First Button OnClick事件调用ajax事件:

ajaxReturns - "<div id='thisDiv'>blah blah</div><div id='thatDiv'>blah blah</div>"
$("#codeToGoHere").append(ajaxReturns);


第二个按钮的OnClick事件:

$("#thisDiv").css("border", "1px solid red");


这是行不通的,我想是因为加载DOM时附加的代码不可用。有没有一种方法可以让DOM在更改后得到重新评估,以确保我可以绑定到出现的新元素?

或者...可能是一个更好的问题,是“我如何进行这项工作?”!

谢谢 :-)

最佳答案

正如您已经怀疑的那样,加载页面时会在以后添加div而不是将其添加到DOM中,因此您必须使用事件委托附加click-event:

$(document).on("click", "#thisDiv", function(){
    $(this).css("border", "1px solid red");
});


由于您的问题中没有按钮,因此我仅在附加div上设置了点击事件,假设您还附加了按钮。
代替$(document)的任何静态父元素都可以用作容器元素来委托事件。

因为应该避免在Stackoverflow上复制/粘贴(甚至从自己的答案中复制/粘贴)-我已经用类似的问题here回答了这个问题,并提供了更多有关事件委托的信息和jquery参考。

07-24 09:51
查看更多