【发布时间】:2013-08-15 10:45:35
【问题描述】:
我有一个滑块(flexslider),它动态地将类“flex-active-slide”添加到活动<li>。
当特定幻灯片具有“flex-active-slide”类时,我想使用 jQuery 执行某些操作。我尝试了以下方法,但它不起作用,因为 .flex-active-class 是在运行后动态添加的:
if ( $('#slider li.about').is('.flex-active-slide') ){
$('.nav li.about').show();
}
在我的研究中,我似乎想使用 on(),但我看到的所有示例都将它与 click() 或 hover() 等事件相关联。这不是由类似的事情触发的——类只是“出现”。我无法弄清楚如何格式化它。像这样……?
$(document).on('???',".flex-active-slide", function() {
$(".nav li.about").show();;
})
我确定这是非常不正确的......我感谢您提供的任何帮助!
注意:我不能简单地使用 CSS,因为我试图影响的 .nav 与滑块 div 完全无关。
更新:这似乎是 flexslider.js 中控制添加 flex-active-slide 类的代码。这里有什么建议我可以做些什么吗?
slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
if (asNav && withSync) {
var master = $(vars.asNavFor).data('flexslider');
slider.atEnd = target === 0 || target === slider.count - 1;
master.flexAnimate(target, true, false, true, fromNav);
slider.direction = (slider.currentItem < target) ? "next" : "prev";
master.direction = slider.direction;
if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
slider.currentItem = target;
slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
target = Math.floor(target/slider.visible);
} else {
slider.currentItem = target;
slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
return false;
}
}
...
【问题讨论】:
-
您希望在添加课程时自动发生一些事情? AFAIK,没有办法做到这一点。检查 flexslider 的文档,看看它是否提供自己的处理程序,您可以绑定到某些操作。
-
我已经更新以包含似乎是 flexslider 代码的相关部分...这里有什么可以绑定的吗?
标签: jquery flexslider