我想創建一個簡單的插件,並且我已經遇到了應該如何管理插件狀態的問題。jquery插件如何維護對象的狀態
(function ($) {
// Static things for plugin goes here
var uiHtml = "<div class='gaw-box'>" +
"</div>";
var methods = {
init: function (options) {
return this.each(function() {
// Create UI
$(this).html(uiHtml);
if (options) {
var defaults = {
name:"N/A"
};
var opt = $.extend(defaults, options);
$(this).find(".gaw-name").html(opt.name);
}
// Visual Events attach
var uiobj = $(this).find(".gaw-box");
$(uiobj).mouseenter(function() {
if (!this.isSelected) {
$(this).css('border', '1px solid red');
}
});
$(uiobj).mouseleave(function() {
if (!this.isSelected) {
$(this).css('border', '1px solid black');
}
});
$(uiobj).click(function() {
this.isSelected = !this.isSelected;
if (this.isSelected) {
$(this).css('border', '3px solid red');
}
else {
$(this).css('border', '1px solid black');
}
});
});
},
getIsSelected: function (options) {
return this.isSelected; // ALWAYS FALSE
},
destroy: function() { }
};
$.fn.gateaway = function (method) {
var plugin = this;
plugin.isSelected = false;
if (methods[method])
{
return methods[method].apply(plugin, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(plugin, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.pluginName');
}
};
})(jQuery);
我想要實現的是保存插件(對象)的狀態,如果它被選中例如或不。 我打電話我的插件像
$("#gate").gateaway('getIsSelected')
結果總是,假的......我知道,問題是「這個」範圍,這個問題,這是我第一次在客戶端開發,以及第二我需要今天完成它:-),所以如果有可能指出我在哪裏或如何組織插件,以便能夠保存每個插件的狀態,它將節省我:-)
是啊!忘記檢查官方文件....謝謝 – StringBuilder 2013-03-11 12:15:31
另一個斷開的鏈接!請停止提供僅鏈接的答案。 – Ahmad 2018-01-16 05:20:22