【发布时间】:2018-05-01 14:03:11
【问题描述】:
我尝试使用这样的数据变量...$this.data().
但是我有一个问题要覆盖一个项目。
我想用它来获取有关插件的一些控制和状态信息。
(function($) {
$.fn.myPlugin = function(options) {
var $this = $(this);
var set = $.extend(true, {}, $.fn.meSlideMenu.defaults, options);
$this.data({
'menu': {
'expand': false,
'initDone': false,
'runFirtTime': true
},
'item': {
'clicked': false,
'lastItem': 'Nothing'
},
'button': {
'isVisible': false,
'clicked': false
}
});
/* some more stuff */
$this.data('button').isVisible = true; /* both doesn't work */
$this.data().button.isVisible = true;
/* some stuff again */
$.fn.myPlugin.defaults = {
'debug': false,
'name': 'meSlideMenu',
'speed': 195,
};
};
})(jQuery);
【问题讨论】:
-
如果你想更新
data中保存的对象中的值,你需要修改对象中的属性值,然后再次调用data()的setter进行更新它。 -
小旁注。我相信在这种情况下
var $this = $(this);是不必要的。在$.fn命名空间中,'this' 已经是一个 jQuery 对象。 -
好吧,听起来不错,但我的 javascript 技能还没有那么成熟。也许你有我的例子?
-
这种方法似乎工作正常。 jsfiddle.net/ctd3rn9g你确定没有更新值吗?
-
是的,你是对的......它有效。
标签: javascript jquery arrays arraylist