gpt4 book ai didi

javascript - 如何让 jQuery 插件同时处理多个元素?

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:12 25 4
gpt4 key购买 nike

我制作了一个组合框插件。要使用它,您只需调用

$(elem).combobox(compensateElement);

编辑:问题是如果你这样做

$('#1').combobox('form');
$('#2').combobox('form');

插件会崩溃...

elem 是要变成组合框的选择,compensateElement 是一个元素,插件可以在该元素之后插入一个长度为 suggestionsDiv-20px 高的 div。 (我的页面上有一个页脚,它没有被绝对定位元素压低...)

现在,问题是这个插件只能在一个元素上使用!如何更改它才能同时处理多个元素?它有一百多行 JS 代码,所以我不希望“转换”代码!

我曾考虑过将所有特定于元素的变量放入 this.data“对象”中,但感觉这根本不是一个好的解决方案。在对它运行一些 RegEx 查找和替换并配置它几个小时后,我根本没有让它工作......

我可以使用哪些技术?

非常感谢您的宝贵时间!

最佳答案

问题是你有一个 literal object , 每次调用 m.init() 时他的内容都会被替换。

我建议你看看this post ,这解释了编写 JQuery 插件的好方法。如果您看到“Lightweight Start”,例如:

$.fn[pluginName] = function ( options ) {
return this.each(function () {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName,
new Plugin( this, options ));
}
});
}

这会为每个元素创建一个新的插件对象实例,因此您可以始终如一地维护状态。

关于javascript - 如何让 jQuery 插件同时处理多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647605/

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