gpt4 book ai didi

javascript - Javascript/jQuery 中的方法委托(delegate)?

转载 作者:行者123 更新时间:2023-11-29 18:37:35 24 4
gpt4 key购买 nike

我有这个代码:

var myWidget = $('#myWidget');

在其他地方这样调用:

myWidget.hide();
myWidget.slideToggle();

这些工作当然是因为 jQuery 添加了这些方法。

现在,假设我正在进行一些重构,使 myWidget 成为具有自己的自定义方法和状态的合适对象:

var myWidget = (function() {
// private stuff
var actualJQueryObject = $('#myWidget');
return {
publicMethod: function() {...},
// MAGIC!
}
})()

但是我想让所有需要 jQuery 对象的调用(它们都围绕着我的代码)即使 myWidget 不再是 jQuery 对象也仍然有效,因为 myWidget 知道如何委托(delegate)这些对 actualJQueryObject 的调用。

这可能吗?

最佳答案

你也可以 extend您的 jQuery 对象,以及另一个具有您的自定义方法的对象:

var myWidget = function() {
// private stuff
var actualJQueryObject = $('#myWidget');

var extensionMethods = {
publicMethod: function() { alert('public method!'); }
}
return $.extend(actualJQueryObject, extensionMethods);
}();

请注意您的扩展方法的名称,不要与任何其他 jQuery 定义的函数冲突。

您可以尝试上面的代码片段 here .

关于javascript - Javascript/jQuery 中的方法委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1231068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com