我正试图让jcarousel双方都工作
如果我使用以下内容,则会返回正确的警告
this.timer = window.setTimeout( (a === 0.5)? alert("c.next() a = " + a):
(a === 0.6)? alert("c.prev() a = " + a):
function(){},500 ) ;
但是,如果我用实际的呼叫替换警报,它就不会滚动。只是移动到下一个图像
this.timer = window.setTimeout( (a === 0.5)? c.next.bind(c):
(a === 0.6)? c.prev.bind(c): function(){},500 ) ;
没有bind()它不起作用
this.timer = window.setTimeout( (a === 0.5)? c.next():
(a === 0.6)? c.prev(): function(){},500 ) ;
有谁知道为什么会这样?如果我没有在Timeout中使用任何条件并使用两个调用之一,例如c.next()那么它会滚动但只能从右到左
任何指南都将不胜感激 桑德拉
答案 0 :(得分:2)
让您自己更容易,并提前定义您的功能,以节省范围和关闭的麻烦
var next = function () {return c.next();},
prev = function () {return c.prev();},
noop = function () {};
this.timer = window.setTimeout(
(a === 0.5 ? next : a === 0.6 ? prev : noop),
500
);
现在
编辑还要注意我是如何调用函数的,因为它们是作为参数传递的;当使用 setTimeout 时,这是因为他们想要稍后调用的东西,而不是立即调用。