jQuery:停止一个函数并再次调用它

时间:2012-08-31 15:02:14

标签: jquery

我目前正在为iPad开发一个小型webapp。 现在我正在使用touchslider。对于一个小的“缩放功能”,我正在使用切换功能来显示和隐藏一些div。现在我想停止触摸屏,以便用户无法刷滑动幻灯片。 但只是在用户切换#zoom1 -button之前,此时滑块应该再次可用。 我尝试解除绑定,停止并启动滑块,但似乎我的方向错了......

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

2 个答案:

答案 0 :(得分: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;
});

答案 1 :(得分:0)

而不是

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

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