在jQuery中;一旦运行特定功能,我将如何执行功能。例如;每次运行.text()
时,我都可以运行函数而不管上下文吗?
在这个具体示例中,我希望收听.append()
,因为我需要在屏幕上放置新元素时重新注册事件监听器。 (即btn click事件监听器)。
我怎样才能做到这一点?我们使用refreshEvents()
作为示例函数。
答案 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
中,然后将其重新定义为调用原始函数的函数,然后调用函数。