似乎当我使用单独的div ID对函数stockTicker()进行两次调用时 - 两个代码将无法顺利运行并跳转: http://jsfiddle.net/Tb6VY/
但如果我只有一个自动收报机就可以了: http://jsfiddle.net/39JJ4/
关于如何让第一个工作的任何想法?
功能:
( function($) {
$.fn.stockTicker = function(options) {
if (typeof (options) == 'undefined') {
options = {};
}
var settings = $.extend( {}, $.fn.stockTicker.defaults, options);
var $ticker = $(this);
function startTicker() {
//stopTicker();
$firstElem = $ticker.children(":first");
var $width = $firstElem.width();
$ticker.stop().animate({
"right": "+="+$width+"px"
}, {
duration: settings.speed*200,
easing: 'linear',
complete: function() {
$ticker.css({"right": "-="+($width)+"px"});
$firstElem.clone().appendTo($ticker);
$firstElem.remove();
startTicker();
}
});
}
function stopTicker() {
$ticker.stop();
}
$ticker.hover(stopTicker, startTicker);
startTicker();
};
$.fn.stockTicker.settings = {};
$.fn.stockTicker.defaults = {
tickerID :null,
speed :1,
};
})(jQuery);
答案 0 :(得分:1)
您忘记声明$firstElem
var
,导致它被视为“全局”变量(从而与其他代码发生冲突)。
声明var $firstElem = $ticker.children(":first");
后,自动收报机工作正常。小提琴:http://jsfiddle.net/Tb6VY/2/