Javascript 检测ul列表内容更改jQuery

Javascript 检测ul列表内容更改jQuery,javascript,jquery,html,backbone.js,Javascript,Jquery,Html,Backbone.js,我们有一个id为#some list的无序列表。在我们的主干实现中,当返回某些数据时,会呈现列表条目并将其附加到列表中,然后显示列表 我们希望使用JQuery检测这种更改何时完成。我们使用了$(#some list).ready()和$(#some list).load(),但它们似乎不起作用 有哪些方法可以捕捉到这种变化?有人能在这里解释一下吗?您没有发布任何代码,所以很难猜测您失败的地方。 但一般来说,我要做的是在ajax回调上触发一个自定义事件(您确实使用ajax获取内容并将其添加到列表中

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

我们希望使用JQuery检测这种更改何时完成。我们使用了
$(#some list).ready()
$(#some list).load()
,但它们似乎不起作用


有哪些方法可以捕捉到这种变化?有人能在这里解释一下吗?

您没有发布任何代码,所以很难猜测您失败的地方。
但一般来说,我要做的是在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,因此可以尝试收听其事件

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

*backboneobject*.on("all", function(e) {
  console.log(e)
});
之后,只需使用

*backboneobject*.on("*yourevent*", function() {
  doStuff();
});

这很有帮助!出于好奇,触发定制事件时有什么最佳实践吗?@BoYuan是-最佳实践是不使用jQuery DOM事件,如下面的回答所示。使用主干网的内置事件API触发主干网事件。如图所示。感谢您的输入。对不起,我是主干网新手,客户端的主干网对象可能是什么?脊梁骨window.Backbone?正如@Sag1v所说的,没有任何代码很难给出一个好的答案。您可能有一个由加载函数检索的模型集合。因此,代码应该是
nameofcollection.on(“change”,function(){doStuff();})