我正在使用jQuery轮播,从这里下载:http://www.thomaslanciaux.pro/jquery/jquery_carousel.htm
它使用分页,并在单击页码时将名为“active”的类应用于当前页码。我希望在应用此类时触发事件,因为它还使用左箭头和右箭头将类应用于当前页码。
以下是应用类时我想要触发的事件:
$('.red').click(function() {
$('#formred').attr('checked', 'checked');
});
我已经让它工作了,但只有在页面加载时才会运行:
if ($('.red').hasClass('active')) {
$('.red').trigger('click');
}
默认情况下,第一个页码具有应用的类,这就是页面加载时的原因。当课程应用于其他页码时,我需要这样做。
答案 0 :(得分:2)
编辑:如果您只需按下按钮,而不是auto
功能,则可以在.delegate()
上放置.carousel
}一旦它可用,就会监听click
元素上的'a[role=button]'
个事件。
$('.carousel').delegate('a[role=button]', 'click', function() {
// Because a button in the carousel was clicked, we know that
// one of the elements received the .active class. So we just
// need to find it.
var $activeButton = $(this).closest('.carousel').find('.active');
// Not sure how the .red class from your question factors in, but you
// can test the $activeButton to see if it has that class
if( $activeButton.hasClass('red') ) {
$('#formred').attr('checked', 'checked');
}
});
同样,这只适用于按钮上的点击事件,而不是设置为auto
旋转。不确定这是不是你想要的。
如果需要,有一个名为livequery
的插件将通过jQuery运行DOM修改代码。
http://brandonaaron.net/code/livequery/docs
$('.someClass').livequery( function() {
// your code
});
如果传递第二个函数参数,它将在删除类(或元素)时运行。
$('.someClass').livequery( function() {
// your code when adding
}, function() {
// your code when removing
});
答案 1 :(得分:0)
无法创建共享事件处理程序,例如:
function changePage( pageNum, nextprev ){
if( nextprev ) pageNum = activePage + nextprev;
// show the next page
$('someElement').addClass('active');
}
然后将此事件设置为click和keydown:
$(...).keydown( function(){
changePage( [1 or -1, depending on input], true );
});
$(...).click( function(){
changePage( [clicked page], false );
});
答案 2 :(得分:0)
我要做的是:
1 - 禁用自动播放
2 - 创建一个setInterval,对旋转木马的分页进行触发('click')
3 - 当然在里面你可以做更多,然后只需触发幻灯片