Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击后停止_Javascript_Jquery_Jcarousellite - Fatal编程技术网

Javascript 单击后停止

Javascript 单击后停止,javascript,jquery,jcarousellite,Javascript,Jquery,Jcarousellite,嗨 我有一个jcarousellite页面,显示一些图像,每5秒钟自动滚动一次。当我点击旋转木马中的任何图像时,我想停止滚动 这就是我要做的 $(document).ready(function() { $('.slider_images').jCarouselLite({ btnNext: "#next", btnPrev: "#prev", auto: 3000 }); $(".slider_im

嗨 我有一个jcarousellite页面,显示一些图像,每5秒钟自动滚动一次。当我点击旋转木马中的任何图像时,我想停止滚动

这就是我要做的

$(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
号的规范仅指定它必须是一个数字,而不要求它是连续的。