2012-08-31 39 views
1

我目前正在为iPad开发一个小型webapp。现在我正在使用touchslider。对于一个小的“缩放功能”,我使用切换功能来显示和隐藏一些div。现在我想停止滑块,以便用户不能滑动滑块。 ,但直到用户切换#zoom1按钮,此时滑块应再次可用。 我解除绑定尝试,停止和启动滑盖,但似乎我是在错误的道路......jQuery:停止函数并再次调用它

$(".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(); 
}); 
+0

那拨动的'版本()'已被弃用,'touchslider'似乎并没有被你可以取消绑定一个事件!你必须看看插件,看看它是否有一个销毁实例的方法! – adeneo

回答

1

Look的就像是这样的:

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; 
}); 
+0

@ Cycle99 - 不客气,查看插件代码,似乎没有任何其他停止滑块的方法。如果有效,请接受答案? – adeneo

+0

我试过了,它似乎并没有停止手动滑动,而且似乎没有任何办法可以解决这个问题呢? – adeneo

+0

我的回答太快了,对不起。您的方法只适用于自动幻灯片,而不是手动滑动幻灯片。它会停止并启动自动幻灯片。 – Cycle99

0

而不是

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

尝试

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