2012-02-24 48 views
1

在boxslider中,自動滑動首次正常工作。但是當我們點擊控件(左右箭頭)時,自動滑動不起作用。這裏是我的代碼:單擊控件後自動滑動不起作用

<ul id="slider-assocoates"> 
    <li><a href="#" target="_blank"><img src="images/abcdef.png" /></a> 
    </li> 
    <li><a href="#" target="_blank"><img src="images/abc.png" /></a> 
    </li> 
</ul> 
    <nav> 
     <a href="#" id="go-prev-assocoates" class="left-arrow">Prev</a> 
     <a href="#" id='go-next-assocoates' class="right-arrow">Next</a> 
    </nav> 

$(function(){ 
    var slider = $('#slider-assocoates').bxSlider({ 
    controls: false, 
    auto: true, 
    pause: 6000 
    }); 

    $('#go-prev-assocoates').click(function(){ 
    slider.goToPreviousSlide(); 
    return false; 
    }); 

    $('#go-next-assocoates').click(function(){ 
    slider.goToNextSlide(); 
    return false; 
    }); 

回答

1

這樣可以解決你的問題。我面臨着同樣的問題,我的項目之一:

slider.startShow();

0
var clickNextBind = function(e){ 
      // if auto show is running, stop it 
      var x = 0; 
      if (slider.settings.auto) x = 1; 
      if(x == 1) el.stopAuto(); 
      el.goToNextSlide(); 
      if(x == 1) el.startAuto(); 
      e.preventDefault(); 
     } 
0

試試這個

$(function(){ 
    var slider = $('#slider-assocoates').bxSlider({ 
    controls: false, 
    auto: true, 
    pause: 6000 
}); 

$('#go-prev-assocoates a, #go-next-assocoates a').click(function(e){ 
    var i = $(this).index(); 
    slider.goToSlide(i); 
    slider.stopAuto(); 
    restart=setTimeout(function(){ 
     slider.startAuto(); 
    },500); 
    return false; 
}); 

這對我的作品。

0

下面是解決bxSlider 4.1.1問題的最優雅的解決方案。通過編輯jquery.bxslider.js文件,並添加下面顯示的兩行。然後朝着這個鏈接jscompressor前進,壓縮它。 (包括收縮變量),現在它的工作原理是不需要額外編碼就可以實現解決方案。 (Thnx to Freelancerrs for this solution

.... 

var clickNextBind = function(e){ 
    // if auto show is running, stop it 
    if (slider.settings.auto) el.stopAuto(); 


    el.goToNextSlide(); 
    e.preventDefault(); 

    el.startAuto(); // ---------------JUST ADD THIS LINE 

} 

/** 
* Click prev binding 
* 
* @param e (event) 
* - DOM event object 
*/ 
var clickPrevBind = function(e){ 
    // if auto show is running, stop it 
    if (slider.settings.auto) el.stopAuto(); 
    el.goToPrevSlide(); 
    e.preventDefault(); 

    el.startAuto(); // ---------------JUST ADD THIS LINE 

} 

...