我正在创建一个 jquery 插件,我需要在每个目标元素处提供一个变量。我的问题是当我在我的 js 中这样做时:
$("section ul").cards("init", {
current: 0
}).on("mousewheel", mousewheel);
function mousewheel(){
$(this).cards("next");
};
该插件已console.log()
更新为current
. 但是他将相同的数据更新为所有“ul”。
当 Imousewheel
在第一个ul
中时,它的电流变为 1(开始为 0),而mousewheel
在第二个中的I 之后ul
,电流变为 2...
我希望每个对象都有自己的变量($(this).data()
)
谢谢 !
!!编辑 !!
有我的插件库:
(function($){
$.fn.cartes = function( methode, options ){
if(options){
return methodes[methode].apply(this, $.makeArray(options));
}
else {
return methodes[methode].call(this);
};
};
var methodes = {
init: function( options ){
return this.each(function(){
var $this = $(this);
var Options = $.meta ? $.extend( $.fn.cartes.defauts, options, $this.data() ) : options;
$this.data("options", Options);
$this.each(function(index){
$this.data("options").rotation = $.fn.cartes.defauts.rotation;
$this.data("options").espacement = $.fn.cartes.defauts.espacement;
});
});
},
prec: function(obj){
return $(obj).each(function(){
$(this).data("options").cur--;
console.log( $(this).data("options").cur );
});
},
next: function(obj){
return $(obj).each(function(){
$(this).data("options").cur++;
console.log( $(this).data("options").cur );
});
}
};
$.fn.cartes.defauts = {
cur: 0,
espacement: 0,
rotation: -45
};
})(jQuery);
!!编辑2!
当我使用每个循环时,console.log
事件中的mousewheel
返回好的数据。
$("section li.double ul").each(function(){
$(this).cartes("init", {
actuel: 0,
selecteur: "li"
});
});
但是如何在没有每个循环的情况下做到这一点。