Flexslider manualControls not working

2019-04-28 04:07发布

I have created a slider with Flexslider and I am trying to use manualControls: to create a navigation menu but the links wont work. Here is code for flexslider and the slider/navigation itself:

Flexslider:

 <script type="text/javascript" charset="utf-8">
  $(window).load(function() {
    $('.flexslider').flexslider({
      controlsContainer: ".slidercontainer",
      controlNav: true,
      manualControls: ".flex-control-nav li",
      }); 
 });
 </script>  

Slider and nav:

    <div class="slidercontainer">
        <div class="flexslider">
            <ul class="slides">
              <li>slide1</li>
              <li>slide2</li>
            </ul>
            <ul class="flex-control-nav">
              <li>1</li>
              <li>2</li>
            </ul>
    </div>          
    </div>

4条回答
干净又极端
2楼-- · 2019-04-28 04:47

Example link : http://flexslider.woothemes.com/

You can simple use the code directly

$(window).load(function() {
  $('.flexslider').flexslider({
    animation: "slide"
  });
});
查看更多
再贱就再见
3楼-- · 2019-04-28 04:55

I've just had the same problem, it was due to having touch events enabled in the 'chrome://flags' page of chrome, after turning off touch events the flexslider navigation arrows and dots will work.

There are several places in the code where flexslider tries to account for an iOS bug, but in so doing completely disables click events on touch-capable browsers that aren't iOS.

查看更多
霸刀☆藐视天下
4楼-- · 2019-04-28 05:07

https://github.com/woothemes/FlexSlider/issues/351

Sounds like there is a lot going on with it.

I am using Chrome primarily, and I had it happening no matter what on this theme:

http://www.templatemonster.com/demo/42317.html

The version of FlexSlider that it had said: jQuery FlexSlider v1.8

But I found a fix for it:

http://wordpress.org/support/topic/chrome-bug-with-flexslider-plugin

End of the thread, a guy posts a link to another site that he fixed! I've posted the necessary lines below:

Line 34 in jquery.flexslider.js

slider.eventType = ('ontouchstart' in document.documentElement) ? 'touchstart' : 'click';

I replaced it with the following two lines:

slider.touch = (( "ontouchstart" in window ) || ( window.navigator.msPointerEnabled ) || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch;
slider.eventType = "click touchend MSPointerUp";

Hope that helps.

查看更多
We Are One
5楼-- · 2019-04-28 05:10

have you fixed this yet? If not, the answer is because FlexSlider still has a live event in the plugin - but jQuery has deprecated this.

To fix it; open up jQuery.flexslider.js and do a find/replace for "live", replacing it with "on". I actually searched ".live(" and replaced with ".on(" just to make sure I only got the event listener. There are 2 occurrences.

That's it. Works perfectly!

查看更多
登录 后发表回答