我有一个JQuery 1.4.2插件,它使用一组选项。伪代码是这样的:
(function($) {
// Shell for the plugin code
$.fn.myPlugIn = function(options) {
// Plugin code
return this.each(function() {
// for each item in selector
options = $.extend($.fn.myPlugIn.defaults, options);
...do stuff
});
$.fn.myPlugIn.defaults = {
header : null,
position : 'absolute',
top : null,
left : null,
forinput : null,
forAnchor : null,
sAjaxSource : null,
onClick : null
};
})(jQuery);
当为单个页面上的多个元素调用插件时,选项不是唯一的——前面的元素选项仍在选项中。
$(document).ready(function() {
$("#div1").myPlugIn(
{forinput: "input1",
onClick: function(data){
... do stuff
},
});
$("#div2").myPlugIn({
forAnchor: "link1",
onClick: function(data){
... do stuff
},
header: "Parts"
});
});
我做错什么了?我希望每次找到插件时,它都会使用传递给它的选项。相反,它使用保留来自第一个实例的所有选项,并覆盖来自第二个实例的任何重新初始化的属性。
欢迎回复。提前谢谢你看我的帖子。