我正在做一个移动div背景的jquery插件(基于另一个插件)。我不明白为什么如果我在元素上只使用$(“。video”)。moveBackground();效果很好。 如果我有2个或更多元素,则仅使用最后一个元素。
代码:http://jsfiddle.net/7PfEN/。它不适用于jsfiddle,但在本地工作正常(好,只有最后一个)。
提前致谢!
答案 0 :(得分:1)
我相信你的问题是该插件使用sys
对象来存储动画计时器,而sys
对象对于你通过一次调用传递到的所有元素都是全局的{{1} 1}}。
所以虽然这不起作用......
.moveBackground()
我相信这会...
$('.video').moveBackground();
答案 1 :(得分:0)
首先,您的jsFiddle正在尝试$(".image").moveBackground()
而不是$(".video")
但真正的问题是每次调用init()都会覆盖全局 sys.elem
值。在极为简略的形式中,这是一种可能适合您的方法:
function init(elem) {
...
$(elem).hover( function() {
...
});
}
...
return this.each(function () { init(this); });
您需要通过elem
向下传递各种功能,并在您目前拥有sys.elem
的任何地方使用它。