如何获取 jQuery 自定义插件中定义的变量
How to get variable defined inside of jQuery custom plugin
我正在开发自定义 jQuery 插件。我需要在第二个函数中访问第一个函数中传递的选项。
问题是如果我在这些函数之外声明设置,当我在同一页面上初始化此插件的多个实例时,它会混淆。
(function($) {
$.fn.MyCombobox = function(options) {
var settings = $.extend({
selector: '.myselector'
}, options);
};
$.fn.MyCombobox.clear = function() {
$(settings.selector).find('input').val('');
};
}(jQuery));
一种方法是将 .data()
设置为 .MyCombobox
(function($) {
$.fn.MyCombobox = function(options) {
var settings = $.extend({
selector: '.myselector'
}, options);
this.data("options", settings);
return this
};
$.fn.clear = function() {
console.log(this.data("options") || {/* default settings here */})
};
}(jQuery));
$("div").MyCombobox().clear();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
我正在开发自定义 jQuery 插件。我需要在第二个函数中访问第一个函数中传递的选项。
问题是如果我在这些函数之外声明设置,当我在同一页面上初始化此插件的多个实例时,它会混淆。
(function($) {
$.fn.MyCombobox = function(options) {
var settings = $.extend({
selector: '.myselector'
}, options);
};
$.fn.MyCombobox.clear = function() {
$(settings.selector).find('input').val('');
};
}(jQuery));
一种方法是将 .data()
设置为 .MyCombobox
(function($) {
$.fn.MyCombobox = function(options) {
var settings = $.extend({
selector: '.myselector'
}, options);
this.data("options", settings);
return this
};
$.fn.clear = function() {
console.log(this.data("options") || {/* default settings here */})
};
}(jQuery));
$("div").MyCombobox().clear();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>