gpt4 book ai didi

jQuery 扩展类和函数问题

转载 作者:行者123 更新时间:2023-12-01 04:22:55 25 4
gpt4 key购买 nike

我环顾四周,找不到适合我情况的明确答案。所以我正在对现有的 jQuery 插件 jquery.autocomplete 进行迭代

所以我有一个 jquery 自动完成插件,其中有一些我需要更改的内容。

第 1 步:需要扩展默认值(这可行)

$.extend($.Autocompleter.defaults, customeDefaults);

这可行,现在我想扩展放置这些默认值的功能。我的挂断涉及到:

在自动完成中我有这样的设置

$.Autocompleter.Select = function() {
//a bunch of stuff in this class including:
function init() {
//this is the function that I need to extend.
}
}

我尝试过这个

$.extend($.Autocompleter.Select.init, myChanges);

没成功然后我做了一个

console.log($.Autocompleter.Select.init());

并且它产生了一个类型错误,指出 Select 没有方法 init... 它确实有。有什么想法吗?

最佳答案

按照当前设置的方式,您无法扩展 init 函数,因为它没有绑定(bind)到 $.Autocompleter.Select 对象 - 它只是在其中声明为函数。

相反,如果函数是这样定义的,您可以扩展它:

$.Autocompleter.Select = function() {
return {
this.init() {
//implementation
}
}
}

编辑:好的,在查看了源代码之后,确实没有办法扩展 init 函数。您可能可以扩展调用 init() 的显示方法,并让它首先执行您想要的操作,然后调用原始版本。该方法与this other question的答案非常相似

var old_display = $.Autocompleter.Select.display;
$.Autocompleter.Select.display = function(args) {
//whatever you need to do first
old_display.apply(this, args);
}

关于jQuery 扩展类和函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949409/

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