2

我知道这里有一些类似的问题,但我试图获得一个特定的值。

我正在研究 Flexslider http://www.woothemes.com/FlexSlider/并尝试向失去“flex-active-slide”类的幻灯片添加一些特殊功能。根据文档,我设法在幻灯片动画之前和之后插入我的函数。

// Callback API
start: function(){},
before: function(){ 
  $('li.image').someFunction(); //this is where I need to trigger this event only to the li.image that's losing the flex-active-slide class
},                          
after: function() {
  $('li.flex-active-slide').otherFunction(); //this is where the active class
}, 

正如您在上面的示例中看到的那样,我不需要为所有其他li.image元素运行该函数,只需要为丢失 flex-active-slide 类的元素运行该函数。

我需要获取这个元素并用一个变量定义它,这样我才能正确运行函数li.image,这对于性能优化目的也很有意义。

我很感激任何帮助。

4

2 回答 2

2

更简单的方法是编辑插件文件本身

打开jquery.flexslider.js

找到以下代码

 active: function() {
          slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
        }

您可以slider.controlNav在此功能中使用您的工作。slider.controlNavli您使用 jQuery 找到其子图像的元素.find

如果它不起作用,您可以active-slide在此文件中找到并查看删除此类的位置,您可以在这些位置添加代码

更新: $('li.image').eq(slider.currentSlide) 是调用失去活动类的幻灯片的方法。

于 2012-08-08T04:41:57.053 回答
0

我想你可以试试这样的东西......

var somevar;

start: function(){},
before: function() {
    somevar = $('li.image.flex-active-slide');
},
after: function() {
    $.each(somevar, function( index, elem ) {
        if( !$(elem).hasClass('flex-active-slide')) ) {
            // Obviously it has lost the flex-active-slide class.
        }
    });
}

我怀疑在插件实际执行某些操作之前很容易确定元素是否正在丢失所述类而不修改插件本身。因此,即使.someFunction()您拥有的方法也必须在after回调中执行。

于 2012-08-08T04:28:41.950 回答