2012-11-06 110 views
1

我有一個簡單的jquery設置爲打開滑動面板,然後啓動第二個函數以在該面板中啓動幻燈片放映。當我關閉面板並再次打開它時,它也會再次調用該功能,因此會給我重複的滑塊。第二次打開滑塊時停止調用函數

 $(function() { 
    $('a.everyday').click(function() { 
    $('#everyday').addClass('open').stop().animate({top:'30px'},{queue:false,duration:400}); 

    // Activates Blinds jquery image slider 
    $(function() { 

    $('.slideshow').blinds(); 

    }); 
    }); 
}); 

所以。點擊功能發生第二次,我想jQuery來沒有主動.blinds功能。

回答

0

糟糕。誤讀需求,這是一個更好的版本。

$(function(){ 
    var opened = 0; 
    $('a.everyday').on('click', function() { 
     $('#everyday').addClass('open').stop().animate({top:'30px'},{queue:false,duration:400}); 
     if(opened < 1){ 
      $('.slideshow').blinds(); 
      opened++; 
     } 

    }); 
}); 
0

加載窗簾應該在你的document.ready,而不是在每一個onclick處理

$(document).ready(function(){ 
    $('.slideshow').blinds(); 
}); 
0
$(function() { 
    var show = new MyShow(); 
    show.initialize(); 
}); 


var MyShow = function(){ 
    this.started = false; 
    var that = this; 
    this.initialize = function(){ 
    $('a.everyday').click(function() { 
      $('#everyday').addClass('open').stop().animate({top:'30px'},{queue:false,duration:400}); 
     if(!that.started){ 
      that.started = true; 
      // Activates Blinds jquery image slider 
      $(function() { 

      $('.slideshow').blinds(); 

     }); 
     }else{return;} 
    }); 
} 
}