在添加到JQuery之前检查DOM元素是否自动存在

时间:2011-08-09 23:28:08

标签: javascript jquery

基本上,我希望每次向DOM附加或前置时都会运行检查,表明我放入的元素不存在。我正在制作复杂的应用程序,有时会使重复的元素导致事件无法正确触发。

我不希望每次更改DOM时都手动运行此检查,我希望在调用prepend或append函数时自动运行它。在调用函数时是否有可以监听的事件?

我不会在应用程序发布时使用此检查,因为我意识到它可能严重妨碍性能,但在开发期间它将非常有价值。

1 个答案:

答案 0 :(得分:5)

只需覆盖jQuery.fn.append

(function() {
    var append = jQuery.fn.append;
    jQuery.fn.append = function() {
        var elemExists = ...;
        if (!elemExists) {
            append.apply(this, arguments);
        }
    };
})();

jQuery.fn.prepend执行相同操作。这非常有效,因为您必须对生产进行的唯一更改是排除此功能。