Javascript 如何延迟滑块的jQuery自动推进脚本中第一次单击的触发?
我使用这个脚本自动推进滑块。当我加载它时,它会立即在加载时触发autoAdvance,并且第二个图像会立即设置为动画。下一个的触发工作正常。我已经尝试在Javascript 如何延迟滑块的jQuery自动推进脚本中第一次单击的触发?,javascript,jquery,Javascript,Jquery,我使用这个脚本自动推进滑块。当我加载它时,它会立即在加载时触发autoAdvance,并且第二个图像会立即设置为动画。下一个的触发工作正常。我已经尝试在.trigger前面添加一个.delay(8000),就像$('#slider nav.next')。delay(8000)。trigger('click',[true]),但无效 你能帮我在哪里放置另一个setTimeout或相应的setTimeout,以及如何放置吗?或者说是什么让你变戏法 以下是全部代码: jQuery(document).
.trigger
前面添加一个.delay(8000)
,就像$('#slider nav.next')。delay(8000)。trigger('click',[true])代码>,但无效
你能帮我在哪里放置另一个setTimeout或相应的setTimeout,以及如何放置吗?或者说是什么让你变戏法
以下是全部代码:
jQuery(document).ready(function ($){
var timeOut = null;
$('#slider-nav .arrow').click(function(e,simulated){
if(!simulated){
clearTimeout(timeOut);
}
});
(function autoAdvance(){
timeOut = setTimeout(autoAdvance,8000);
$('#slider-nav .next').trigger('click',[true]);
})();
稍微修改一下代码就可以了
jQuery(document).ready(function ($){
var timeOut = null;
$('#slider-nav .arrow').click(function(e,simulated){
if(!simulated){
clearTimeout(timeOut);
}
});
//Modify your code like this
function autoAdvance(){
timeOut = setTimeout(autoAdvance,8000);
$('#slider-nav .next').trigger('click',[true]);
};
timeOut = setTimeout(autoAdvance,8000);
});
稍微修改一下代码就可以了
jQuery(document).ready(function ($){
var timeOut = null;
$('#slider-nav .arrow').click(function(e,simulated){
if(!simulated){
clearTimeout(timeOut);
}
});
//Modify your code like this
function autoAdvance(){
timeOut = setTimeout(autoAdvance,8000);
$('#slider-nav .next').trigger('click',[true]);
};
timeOut = setTimeout(autoAdvance,8000);
});
我已经在函数上方粘贴了它,但在您创建它时,它不起作用,因为整个函数都停止了,chrome developer tools说没有定义autoAdvance
。你的意思是将它粘贴在两个代码块之间?确实如此,尽管我不能完全理解为什么在函数之后引用它会在函数之前引发延迟。做得很好。@dollarvar:在您的例子中,是一个立即执行的函数,它执行$('#slider nav.next')。触发器('click',[true])代码>第一次立即。在我的回答中,它声明了一个函数,但尚未执行,然后调用setTimeout(autoAdvance,8000)代码>在8秒后执行。我已经在函数上方粘贴了它,但当您创建它时,它不起作用,因为整个函数都停止了,chrome developer tools说没有定义autoAdvance
。你的意思是将它粘贴在两个代码块之间?确实如此,尽管我不能完全理解为什么在函数之后引用它会在函数之前引发延迟。做得很好。@dollarvar:在您的例子中,是一个立即执行的函数,它执行$('#slider nav.next')。触发器('click',[true])代码>第一次立即。在我的回答中,它声明了一个函数,但尚未执行,然后调用setTimeout(autoAdvance,8000)代码>以在8秒后执行。