ajax加载后再次运行jQuery ready块?

时间:2011-03-18 21:27:14

标签: javascript jquery

我不确定我是否在这里问正确的问题,但基本上我正在插入带有ajax请求的html:

// data-active_chart
if ($("#charts").attr("data-active_chart") == "barchart") {
  $.ajax({
    url: $("#charts").attr("data-path") + "/barchart",
    success: function(data) {
      $('#charts').html(data);
      console.log('Load was performed.');
    }
  });
}

我的HTML就像:

<div id="charts" data-active_chart="barchart" data-path="http://example.com/something">

</div>

但关键是我需要jQuery来了解更新的DOM,比如我需要我的工具提示等工作在插入的HTML中,以及插入的HTML中的一堆其他东西都需要响应对JS来说,我该如何以最佳实践方式做到这一点?

2 个答案:

答案 0 :(得分:6)

如果您需要绑定在DOM更改后将发生的事件,请使用jQuery live

答案 1 :(得分:2)

如果现有的处理程序是使用jQuery live附加的,那么在更新DOM之后应该更好。

你必须测试这种情况;可能是您正在使用的某些库可能直接使用.click()或.hover(),在这种情况下,您需要在更新dom后重新初始化处理程序或库。