检测 ul 列表内容变化 jQuery

Detect ul list content change jQuery

我们有一个 ID 为#some-list 的无序列表。在我们的 Backbone 实现中,当返回某些数据时,将呈现列表条目并将其附加到列表中,然后显示列表。

我们想要使用 JQuery 检测此类更改何时完成。我们使用了 $(#some-list).ready()$(#some-list).load(),但看起来它们不起作用。

有哪些方法可以捕捉到这种变化?有人可以在这里点灯吗?

嗯,你没有 post 任何代码,所以很难猜出你在哪里失败了。
但总的来说,我会做的是在 ajax 回调上触发一个自定义事件(你确实使用 ajax 来获取内容并将其附加到列表中吧?)。

例如:

loadData(){
  // invoke the ajax request
  var def = $.get(...);
  def.then(function(result){
    // $(#ul) append(result) ...  
    // now trigger the custom event  
    $(document).trigger('listRendred');
  });
}

现在您可以在不同的地方或脚本上收听它:

$(document).on('listRendred', function(e){ // do what ever... })

由于您使用的是 BackboneJS,因此您可以尝试监听它的事件。

要找出您可以使用哪些事件,请尝试使用以下代码(首先替换我的 * 占位符)并查看浏览器的控制台。

*backboneobject*.on("all", function(e) {
  console.log(e)
});

之后只需使用

监听事件
*backboneobject*.on("*yourevent*", function() {
  doStuff();
});