Adding flex-active class to the li instead of a/img

笑着哭i 提交于 2019-12-11 22:50:10

问题


When we enable controlNav, we get nice paging list and some usefull class like flex-active. but the class added to the link or image(when thumbnail control enabled). like this:

<ol class="flex-control-nav">
    <li><a class="flex-active">1</a></li>
    <li><a>1</a></li>
</ol>

How to move flex-active class to the li element instead of a/img element to get something like this:

<ol class="flex-control-nav">
    <li class="flex-active"><a>1</a></li>
    <li><a>1</a></li>
</ol>

edit: here the script i used to show flexslider with thumbnail control:

$('.clients-items').flexslider({
    animation: 'slide',
    controlNav: 'thumbnails',
    directionNav: false,
});

回答1:


Please provide the jQuery you are using to get more precise answer but could you use something like this?

$('.clients-items').flexslider({
    animation: 'slide',
    controlNav: 'thumbnails',
    directionNav: false,
    start: function(){
        $('.flex-control-nav .flex-active').parent('li').addClass('flex-active').siblings().removeClass('flex‌​-active');
    },
    after: function(){
        $('.flex-control-nav .flex-active').parent('li').addClass('flex-active').siblings().removeClass('flex‌​-active');
    }
});



回答2:


I think the easiest way would be using

.parent('li');

So something like

jQuery('.flex-control-nav').find('a.flex-active')
    .removeClass('flex-active')   // remove the class from the a
    .parent('li')                 // select the parent of the a,.. li that is.
    .addClass('flex-active');     // add the flex-active class to the parent li.



回答3:


I found this solution and its work for me
start: function() { //-- Add flexslider active class to li of nav control instead of just on the image if ($('.testimonial-section .flexslider ol.flex-control-nav').length > 0) { // initial check and addition $('.testimonial-section .flexslider ol.flex-control-nav li').each(function() { if ($(this).children('img').hasClass('flex-active')) { $(this).children('img').removeClass('flex-active'); $(this).addClass('flex-active'); } else { $(this).removeClass('flex-active'); } }); // bind into flexslider callback and run dynamically $('.testimonial-section .flexslider').bind('start', function(event, slider) { $('.testimonial-section .flexslider ol.flex-control-nav li').each(function() { if ($(this).children('img').hasClass('flex-active')) { $(this).children('img').removeClass('flex-active'); $(this).addClass('flex-active'); } else { $(this).removeClass('flex-active'); } }); }); } }, after: function() { //-- Add flexslider active class to li of nav control instead of just on the image if ($('.testimonial-section .flexslider ol.flex-control-nav').length > 0) { // initial check and addition $('.testimonial-section .flexslider ol.flex-control-nav li').each(function() { if ($(this).children('img').hasClass('flex-active')) { $(this).children('img').removeClass('flex-active'); $(this).addClass('flex-active'); } else { $(this).removeClass('flex-active'); } }); // bind into flexslider callback and run dynamically $('.testimonial-section .flexslider').bind('after', function(event, slider) { $('.testimonial-section .flexslider ol.flex-control-nav li').each(function() { if ($(this).children('img').hasClass('flex-active')) { $(this).children('img').removeClass('flex-active'); $(this).addClass('flex-active'); } else { $(this).removeClass('flex-active'); } }); }); } }




回答4:


start: function(){
    $('.flex-control-nav .flex-active').parent('li').addClass('flex-active').siblings().removeClass('flex‌​-active');
},
after: function(){
    $('.flex-control-nav li').removeClass('flex-active');
    $('.flex-control-nav .flex-active').parent('li').addClass('flex-active').siblings().removeClass('flex‌​-active');
}


来源:https://stackoverflow.com/questions/25143437/adding-flex-active-class-to-the-li-instead-of-a-img

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!