Javascript 单击后停止
嗨 我有一个jcarousellite页面,显示一些图像,每5秒钟自动滚动一次。当我点击旋转木马中的任何图像时,我想停止滚动 这就是我要做的Javascript 单击后停止,javascript,jquery,jcarousellite,Javascript,Jquery,Jcarousellite,嗨 我有一个jcarousellite页面,显示一些图像,每5秒钟自动滚动一次。当我点击旋转木马中的任何图像时,我想停止滚动 这就是我要做的 $(document).ready(function() { $('.slider_images').jCarouselLite({ btnNext: "#next", btnPrev: "#prev", auto: 3000 }); $(".slider_im
$(document).ready(function() {
$('.slider_images').jCarouselLite({
btnNext: "#next",
btnPrev: "#prev",
auto: 3000
});
$(".slider_images img").click(function(){
$('.slider_images').jCarouselLite({
btnNext: "#next",
btnPrev: "#prev",
scroll: false
});
});
});
我读了一会儿代码,发现自动滚动是通过使用
setTimeout
实现的:
if(o.auto)
setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
var timeoutId = window.setTimeout(function(){...}, 100);
window.clearTimeout(timeoutId);
如果第二次使用jCarouselLite
,它将不会停止setTimeout
。要停止设置超时,您必须调用窗口。clearTimeout
:
if(o.auto)
setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
var timeoutId = window.setTimeout(function(){...}, 100);
window.clearTimeout(timeoutId);
这是不可能的,因为jcarousel的代码没有向您提供这些
timeoutId
。您可以与开发人员交谈或自己修改代码。我阅读了一会儿代码,发现自动滚动是通过使用设置超时来实现的:
if(o.auto)
setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
var timeoutId = window.setTimeout(function(){...}, 100);
window.clearTimeout(timeoutId);
如果第二次使用jCarouselLite
,它将不会停止setTimeout
。要停止设置超时,您必须调用窗口。clearTimeout
:
if(o.auto)
setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
var timeoutId = window.setTimeout(function(){...}, 100);
window.clearTimeout(timeoutId);
这是不可能的,因为jcarousel的代码没有向您提供这些timeoutId
。您可以与开发人员交谈,也可以自己修改代码。我想不同意和/或找到使用此插件的解决方法,但我必须同意他的意见-需要重写源代码才能实现您的愿望。或者,您可能需要考虑。它已经有了“暂停”和“停止”方法。我想不同意和/或找到一个解决方法来使用这个插件,但我必须同意他的意见-需要重写源代码才能完成您想要的操作。或者,您可能需要考虑。它已经有了“暂停”和“停止”方法。将其添加到文件顶部
var timers = new Array();
改变
setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)
到
停止滚动
var classToStop = ".TestClass";
for(var i=0; i < timers.length; i++)
{
if("."+timers[i][0] == uploadifyClass)
window.clearInterval(timers[i][1])
}
var classToStop=“.TestClass”;
对于(变量i=0;i
将其添加到文件顶部
var timers = new Array();
改变
setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)
到
停止滚动
var classToStop = ".TestClass";
for(var i=0; i < timers.length; i++)
{
if("."+timers[i][0] == uploadifyClass)
window.clearInterval(timers[i][1])
}
var classToStop=“.TestClass”;
对于(变量i=0;i
很抱歉回复太晚。我的问题解决了。通过更改jcarousellite的pauseOnHover选项,我们可以很容易地实现单击停止属性。如果您看到pauseOnHover的实现,它是这样的:
o.pauseOnHover ? ul.hover(function (){ paused == 1 }, function (){paused=0}) : "";
我们可以通过将ul.hover更改为ul.click来实现点击停止
o.pauseOnHover ? ul.click(function (){ paused == 1 }, function (){paused=0}) : "";
祝你有一个愉快的一天。很抱歉回复太晚。我的问题解决了。通过更改jcarousellite的pauseOnHover选项,我们可以很容易地实现单击停止属性。如果您看到pauseOnHover的实现,它是这样的:
o.pauseOnHover ? ul.hover(function (){ paused == 1 }, function (){paused=0}) : "";
我们可以通过将ul.hover更改为ul.click来实现点击停止
o.pauseOnHover ? ul.click(function (){ paused == 1 }, function (){paused=0}) : "";
祝您度过愉快的一天。这将停止页面上的所有转盘自动前进。我正在杀死所有在这里使用超时的东西。这对我很有用:
$(".slider_images img").click(function(){
var x = setTimeout("");
for (var i = 0 ; i < x ; i++)
clearTimeout(i);
}
$(“.slider\u images img”)。单击(函数(){
var x=设置超时(“”);
对于(变量i=0;i
这将停止页面上的所有旋转木马自动前进。我正在清除使用超时的所有内容。这对我很有效:
$(".slider_images img").click(function(){
var x = setTimeout("");
for (var i = 0 ; i < x ; i++)
clearTimeout(i);
}
$(“.slider\u images img”)。单击(函数(){
var x=设置超时(“”);
对于(变量i=0;i
如果您使用的是最新的jcarousel
由于某种原因,他们的文档中没有此事件,尽管pauseCarousel是
如果您使用的是最新的jcarousel
由于某些原因,PauseCaruel文档中没有此事件。这可能在大多数浏览器中都适用,但它使用的是未定义的行为。setTimeout
返回的编号的规范仅指定它必须是一个数字,而不要求它是连续的。这可能在大多数浏览器中都适用,但是使用未定义的行为。返回的setTimeout
号的规范仅指定它必须是一个数字,而不要求它是连续的。