1

スライドパネルを開くように設定された単純なjqueryがあり、次にそのパネル内でスライドショーを開始するための2番目の関数を開始します。パネルを閉じてもう一度開くと、関数も2回呼び出されるため、スライダーが重複します。

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

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

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

   });
  });
});

したがって、2回目に.click関数が発生するときは、jqueryで.blinds関数を開始しないようにします。

4

3 に答える 3

0

ブラインドの読み込みは、すべての onclick ハンドラではなく、document.ready にある必要があります

$(document).ready(function(){
    $('.slideshow').blinds();
});
于 2012-11-06T19:37:44.653 に答える
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;}
  });
}
}
于 2012-11-06T19:41:33.060 に答える
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++;
        }

     });
});
于 2012-11-06T19:33:24.937 に答える