【问题标题】:jQuery: Stop a function and call it againjQuery:停止一个函数并再次调用它
【发布时间】:2012-08-31 15:02:14
【问题描述】:

我目前正在为 iPad 开发一个小型网络应用程序。 现在我使用touchslider。对于一个小的“缩放功能”,我使用切换功能来显示和隐藏一些 div。现在我想停止触摸滑块,这样用户就不能滑动幻灯片。 但就在用户切换 #zoom1 -按钮之前,此时滑块应该再次可用。 我尝试取消绑定,停止并启动滑块,但似乎我走错了路......

$(".touchslider15").touchSlider({
container: this,
duration: 350, 
delay: 3000, 
margin: 0,
mouseTouch: true,
autoplay: false, 
viewport: ".touchslider-viewport15"}); 

$("#zoom1").toggle(function(){
$('#header').hide();
$(".touchslider15").unbind('touchSlider', touchSlider);
},function(){ 
    $('#header').show();
});

【问题讨论】:

  • 该版本的toggle() 已被弃用,touchslider 似乎不是您可以解除绑定的事件!您必须查看插件,看看它是否有销毁实例的方法!

标签: jquery


【解决方案1】:

看起来是这样的:

var state=true;

$(".touchslider15").touchSlider({
    container: this,
    duration: 350, 
    delay: 3000, 
    margin: 0,
    mouseTouch: true,
    autoplay: false, 
    viewport: ".touchslider-viewport15"
}); 

$("#zoom1").on('click', function() {
    $(".touchslider15").data("touchslider")[state?'stop':'start']();
    $("#header").toggle(!state);
    state=!state;
});

编辑:不确定它是否有效,但您可以尝试:

$("#zoom1").on('click', function() {
    if (state) {
        var elem = $(".touchslider15").clone(false);
        $(".touchslider15").replaceWith(elem);
    }else{
        $(".touchslider15").touchSlider({
            container: this,
            duration: 350, 
            delay: 3000, 
            margin: 0,
            mouseTouch: true,
            autoplay: false, 
            viewport: ".touchslider-viewport15"
        }); 
    }
    $("#header").toggle(!state);
    state=!state;
});

【讨论】:

  • @Cycle99 - 不客气,查看插件代码,似乎没有任何其他方法可以停止滑块。如果有效,请接受答案?
  • 我试过了,好像并没有停止手动滑动,好像也没有什么办法?
  • 我的回答太快了,抱歉阿德诺。您的方法仅适用于自动幻灯片,而不适用于手动滑动幻灯片。它停止并启动自动幻灯片。
  • 插件网站上也没有说明书,我查了至少四遍
  • 有没有办法杀死代码并重新渲染?我知道,这似乎是一种杀手锏,但如果它有效呢?
【解决方案2】:

代替

 $("#zoom1").on('click', function() {
    if (state) {

试试

$("#zoom1").one('click', function() {
    if (state) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多