运行默认的jQuery函数后运行Javascript函数

时间:2016-11-01 01:02:23

标签: javascript jquery events

在jQuery中;一旦运行特定功能,我将如何执行功能。例如;每次运行.text()时,我都可以运行函数而不管上下文吗?

在这个具体示例中,我希望收听.append(),因为我需要在屏幕上放置新元素时重新注册事件监听器。 (即btn click事件监听器)。

我怎样才能做到这一点?我们使用refreshEvents()作为示例函数。

1 个答案:

答案 0 :(得分:2)

正如Event binding on dynamically created elements?中所述,使用事件委派可能正确地执行您想要的操作。例如。变化

$(".search-btn").on("click", function() {
    ...
});

为:

$("#container").on("click", ".search-btn", function() {
    ...
});

#container替换为包含所有动态添加的搜索按钮的静态元素的选择器。

但为了说明如何做你所问的,你可以这样做:

(function(oldappend) {
    $.fn.append = function() {
        var result = oldappend.apply(this, arguments);
        refreshEvents();
        return result;
    };
})($.fn.append);

这会将jQuery .append()方法的原始值保存在局部变量oldappend中,然后将其重新定义为调用原始函数的函数,然后调用函数。