jQuery Live“任何”功能?

时间:2012-02-14 16:41:46

标签: jquery

我想要做的是有一个“实时”函数来监视类名的存在,如果任何事件导致该类名被添加到DOM中的任何位置,则会触发另一个函数

如何编写能够执行此操作的函数?

2 个答案:

答案 0 :(得分:1)

这种功能在jQuery中不存在,并且不会被添加,因为实现它所需的方法被浏览器折旧。资料来源:https://forum.jquery.com/topic/a-global-event-or-simple-callback-for-new-content-entering-the-page-specifically-for-applying-widgets-and-behaviour#14737000003041291

但是,在同一篇文章中,提到了一个执行此操作的插件。

https://github.com/snesin/jcade

答案 1 :(得分:1)

您有两种方法可以侦听类名。

  1. 运行计时器并按间隔检查该类的新元素。如果找到新元素,则触发功能
  2. 聆听他们正在聆听的同一事件。从那里,你可以检查新的元素,或者你可以假设它运行并运行你的功能。
  3. 除此之外,没有办法很容易地“插入”另一个元素。理论上,如果他们没有将代码封装在闭包中,您可以执行以下操作:

    var _theirfunction = theirfunction;
    function theirfunction () {
        // You function to override theirs
        _theirfunciton(); // Run their code. Make sure to pass along the arguments
        yourFunction();
    }
    

    虽然当他们更新它时,您需要确保参数匹配,并且函数名称是相同的。这也会受到问题的影响,具体取决于它们如何处理它们的功能以及如何调用它们。如果这是在特定的上下文中,您需要执行apply