我创建了一个下拉 jquery 插件。这会隐藏一个常规的 html 选择并添加一个 div 和一些子 div 作为显示选项。
按照一般的经验法则,我正在像这样初始化插件:
$.fn.dropdown = function (options) {
return this.each(function() {
if (undefined === $(this).data('dropdown')) {
var dropdown = new $.dropdown(this, options);
$(this).data('dropdown', dropdown);
}
});
};
我还将为选择元素提供的任何类复制到替换 div
当试图通过使用类作为选择器来获取元素的数据时,选择器显然返回了元素数组中生成的 div。
这会导致 div 出现“数据未定义”错误。
我应该从插件中更改一些东西还是期望使用插件的人在初始化后使用 id 而不是类来获取数据来选择元素?
最佳答案
好吧,您在这里真的没有太多选择。在你的 $.dropdown
构造函数中,只需再创建一个对 this
实例的数据引用。无论如何它都很便宜,因为它只是一个对象引用:
$.dropdown = function(element, options) {
// ... newElement is what replaces original select
newElement.data('dropdown', this);
};
关于javascript - jQuery 插件,获取原始元素的 .data(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12117531/