如何在mouseleave上禁用bxSlider?

时间:2012-12-23 15:48:28

标签: javascript jquery html5 css3 bxslider

是否可以在mouseleave上停用插件'bxSlider'?

$('.post').mouseenter(function() {   
         $('.content .bxSlider').each(function(){
             $(this).bxSlider({auto: 'true'});
         });
     }).mouseleave(function() {
         // ??
});

请建议......

1 个答案:

答案 0 :(得分:2)

你为什么要阻止它?你想让它只在徘徊时自动前进吗? 看看options我相信你可以这样做:

$('.content .bxSlider').each(function(){
         $(this).bxSlider();
});

$('.post').mouseenter(function() {   
         $('.content .bxSlider').each(function(){
             $(this).startAuto();
         });
     }).mouseleave(function() {   
         $('.content .bxSlider').each(function(){
             $(this).stopAuto();
         });
});

当然这个代码可以稍微优化一下,也许有一些变量可以减少dom搜索次数,但我认为这就是你所追求的:)

修改

对,所以上述方法不起作用。除非滑块对象是变量,否则无法识别公共函数。我不知道为什么,但这就是我如何解决它:

var sliders = []; // store for the sliders

$('.content .bxSlider').each(function() {
    sliders.push($(this).bxSlider({auto: false})); // create a slider and store it
});

$('.post').mouseenter(function() {   
         $.each(sliders, function(i){
             sliders[i].startAuto(); // start each slider
         });
     }).mouseleave(function() {   
         $.each(sliders, function(i){
             sliders[i].stopAuto(); // stop each slider
         });
});​

这里有效:http://jsfiddle.net/KBfx9/ 希望有所帮助!

编辑2 触发嵌套幻灯片显示的解决方案:

之前的解决方案是同时触发多个幻灯片。我在这里修改了它:http://jsfiddle.net/KBfx9/1/来触发嵌套幻灯片。 注意:我只是使用类.content作为我的标识符而不是帖子,因为在我的示例中后者是不需要的。另外,我已经使用容器的index()来识别相关的滑块,因为这将在OP链接到的页面中起作用(在下面的注释中)。

希望这能为你排序:)