我正在编写一个 jQuery 插件,需要跟踪页面上使用该插件的对象的数量。有没有一种方法可以在跟踪自身实例的插件中创建一个静态变量?
到目前为止,这是我对插件的了解:
(function ($) {
$.fn.my_plugin = function (options)
{
var plugin_count = 0;
return this.each(function() {
alert(++plugin_count);
});
}
}(jQuery));
在我的页面上:
<div class="plugin_div"></div>
<div class="plugin_div"></div>
<div class="plugin_div"></div>
<div class="plugin_div"></div>
<script language="javascript">
$('.plugin_div').my_plugin();
</script>
当页面加载时,我收到四个警报,其中显示“1”。
我如何编写此代码,以便每个调用 my_plugin()
的元素的变量递增?
编辑:修复了错误的复制粘贴作业。
最佳答案
你可以这样做:
(function ($) {
$.fn.my_plugin = function (options)
{
$.fn.my_plugin.count = $.fn.my_plugin.count || 0;
return this.each(function() {
alert(++$.fn.my_plugin.count);
});
}
}(jQuery));
或者不使用 $.fn
而使用 $.my_plugin.count
因此您还可以将插件的默认值定义为:
$.my_plugin = {
count : 0,
defaults : {}
};
// Extend options with plugin defaults!
$.extend(options, $.my_plugin.defaults);
关于javascript - 静态变量作为计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16150213/