自定义事件文档 onContentChange

2023-12-10

这里 jsFiddle 来测试示例

我目前正在编写一个 jQuery 片段来处理 DOM 中由任何 jQuery“触发”的任何 html 内容更改domManip功能(扩展一些功能)。不确定这是最好的方法,所以欢迎任何建议。

如果绑定到文档,此代码片段将按预期工作。但是,如果我尝试将其绑定到特定元素,我将面临一些功能为的问题.remove()。也许是由于自定义事件没有使用正常的传播行为,但我真的不确定。

这是一个工作示例,我绑定contentChange事件记录,跨浏览器工作,我可以测试它:{Win7下的Firefox,IE9,Chrome和Safari}

;
(function ($) {
    $.fn.contentChange = function (types, data, fn) {
        return this.on('contentChange', types, null, data, fn);
    };
    var oDomManip = $.fn.domManip,
        oHtml = $.fn.html,
        oEmpty = $.fn.empty,
        oRemove = $.fn.remove,
        extendFct = function (oFct, sender, args) {
            return oFct.apply(sender, args), $.event.trigger('contentChange');
            //=>if testing specific element (#test) use instead following line
             //return oFct.apply(sender, args), $(sender).trigger('contentChange');
        };
    $.fn.domManip = function () {
        extendFct(oDomManip, this, arguments)
    };
    $.fn.html = function () {
        extendFct(oHtml, this, arguments)
    };
    $.fn.empty = function () {
        extendFct(oEmpty, this, arguments)
    };
    $.fn.remove = function () {
        extendFct(oRemove, this, arguments)
    };
   
})(jQuery);

I use: $.event.trigger('contentChange')触发自定义事件。

像这样称呼:

$(document).contentChange(function () {
    console.log("onContentChange")
});

但是,如果我使用:

$('#test').contentChange(function () {
    console.log("onContentChange")
});

自定义事件不会被触发。 因此,要在特定元素上触发自定义事件,我可以像这样触发它:

$(sender).trigger('contentChange');

但现在,请致电remove()自己或孩子的方法不会触发我的自定义事件。 我可以理解,如果删除元素,事件回调函数将不会被调用,但是为什么在删除子元素时不调用它(虽然它在绑定到文档时工作!)?

I was 期待这条线定制事件气泡去测试':

$('#test').find('div:first').remove();

在操作该元素和/或其子元素时,有什么方法可以触发绑定到特定元素的自定义事件?


您需要在被修改的元素上触发事件。

http://jsfiddle.net/Gw4Lj/2/

return oFct.apply(sender, args), sender.trigger('contentChange');

但是,通过此更改,您将不再捕获在未连接到 DOM 的元素上触发的事件,因为它不是该文档的后代,在我看来这是可以的,因为它没有关联对于该 DOM,它位于 DOM 片段中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义事件文档 onContentChange 的相关文章

随机推荐