-2

因此,我的站点中有一个页面,该页面具有类名称“mainContent”,该页面使用 AJAX .ajax() 每隔 1 分钟自动更新一次新数据。其中的内容需要一些 JavaScript 才能实现某些功能。现在的问题是 JavaScript 在没有整个页面刷新的情况下无法处理加载到 DOM 中的新数据。我已经搜索并发现使用 .on() 将数据绑定到 DOM 应该可以工作,如下所示:

$(document).on('click', '.mainContent',function(){
        expand();
    });

其中expand 是一个JS 函数。但是,它仅适用于新数据,而不适用于先前 AJAX 调用中添加的数据......

4

2 回答 2

0

你快到了,这只是你的逻辑。这就是这个 jQuery 函数的工作原理:

  1. 你设置一个容器。这是包含您要绑定的 AJAX 包装项目的元素。越具体越好。否则,您将为整个页面连接一个事件,这很糟糕
  2. 事件。_ 你在听什么?
  3. 谁将解雇处理程序。一个选择器来组成这句话:当这个大家伙里面的这些家伙触发这个事件,运行这个代码

假设您mainContent充满了超链接(我不确定,因为您的问题缺乏细节):

$('.mainContent').on('click', 'a', function () {
  //do your magic
  //$(this) is the clicked link
});

这样,我们的短语是:当.mainContent内的链接点击时,运行this


更新

根据评论,我认为您的问题可能出在expand功能上。让我们试一试:

$('.mainContent').on('click', 'a', function () {
  $(this).simpleexpand();
});
于 2013-07-22T12:51:54.613 回答
-1

您是否尝试将绑定应用于加载新数据的 ajax 函数的回调?

类似的东西:

$.ajax({
  url: url...//Classic ajax call
}).done(function ( data ) {

    //Apply your 'on' here

});
于 2013-07-22T12:36:37.960 回答