jquery - 需要修改 JQuery Cycle updateActivePagerLink 选项

标签 jquery html css jquery-plugins jquery-cycle

我正在创建一个简单的 3 图像幻灯片放映,我对 Jquery 和 Cycle 还很陌生。我有幻灯片放映,还有 3 个寻呼机链接也可以。

我唯一需要完成的是,将“activeSlide”功能添加到当前选择的寻呼机图像,我不能通过简单地使用 activeSlide 类在 CSS 中做到这一点...因为我想更改事件寻呼机的图像来源...如果默认情况下它只是简单的文本数字,我会设置 activeSlide 类的样式。

基本上,我想在到达事件幻灯片分页器时将 test-select-off.jpg 与 test-select-on.jpg 交换。

循环码:

$(function() {
    $('#testimonial-features').cycle({  
        speed: 800,
            timeout: '6500',
            pause: 'true',
            pager: '#testimonial-switcher',
            pagerAnchorBuilder: function(idx, slide) { 
             return '#testimonial-switcher li:eq(' + idx + ') a';       
            } 
    });
});

HTML代码:

<div id="testimonial-switcher">
<ul>
    <li><a href="#"><img src="images/layout/test-select-off.jpg" /></a></li>
    <li><a href="#"><img src="images/layout/test-select-off.jpg" /></a></li>
    <li><a href="#"><img src="images/layout/test-select-off.jpg" /></a></li>
</ul>

我该怎么做?我假设我需要通过修改 updateActivePagerLink 函数在 updateActivePagerLink 选项中做一些事情,取自 http://www.malsup.com/jquery/cycle/pager7.html :

$.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) { 
    $(pager).find('li').removeClass('activeLI') 
        .filter('li:eq('+currSlideIndex+')').addClass('activeLI'); 
}; 

但就像我说的,我仍在学习这种语法,所以非常感谢任何帮助!

最佳答案

编辑:显然,由于我不熟悉该插件,所以我原来的回答没有用。但是,由于您发现了部分功能,我将在此处使用应该可以完全工作的解决方案更新答案。除了您发现的内容之外,您所要做的就是在该函数的开头将它们全部更改为“关闭”(第 1 行),然后将事件的更改为“打开”(您添加的内容)。

$.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) {
    $(pager).find('img').attr('src','images/layout/test-select-on.jpg');
    $(pager).find('li').removeClass('activeLI') 
            .filter('li:eq('+currSlideIndex+')').addClass('activeLI')
            .find('img').attr('src','images/layout/test-select-on.jpg'); 
};

如果可行,请告诉我。


原始错误答案(留下来让评论有意义)
看起来你可以在 li 中替换 imgsrc.activeLIafter 回调函数(虽然我之前没有使用过 Cycle 插件,只是 gleaning that last bit from the docs )。

因此将循环代码更改为:

$(function() {
    $('#testimonial-features').cycle({  
        speed: 800,
        timeout: '6500',
        pause: 'true',
        pager: '#testimonial-switcher',
        pagerAnchorBuilder: function(idx, slide) { 
         return '#testimonial-switcher li:eq(' + idx + ') a';       
        },
        after: function(curr, next, opts) {
         $(curr).find('img').attr('src','images/layout/test-select-on.jpg');
        } 
    });
});

如果可行,请告诉我! (注意:如果这不起作用,请尝试从 after: function() 中的 curr 展开 $()...我说,以前没用过这个插件)

关于jquery - 需要修改 JQuery Cycle updateActivePagerLink 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975643/

相关文章:

javascript - 如何等待所有动画在 jQuery 中完成?

css - 在 IE 中设置样式选择边框会更改箭头按钮

javascript - 如果最后一个 td (8) 有一些内容,我如何将类添加到行中的第二个 td?

jquery - 屏幕高度改变后,Overlay div 不再填满屏幕

html - 如何使背景图像调整大小以容纳其中的所有文本

javascript - 按钮列表上的 onclick 事件无法使用 JQuery 工作

html - 使用 css 在所有支持的浏览器中居中文本

javascript - 为什么在我尝试打印网页时,广告内容没有在每个打印页面中重复出现?

jquery - 相互响应的div框

html - 如何将 div 与另一个 'inline-block' 中的 'div' 属性对齐?