您已使用prev / next构建图像滑块。在取消绑定上一个或下一个Button后,我想再次绑定它们的问题,如何将bind()集成到我的代码中?
这是我的代码: -
// for sliding right
var counter = 1;
$('#nextArrow').click(function(){
var item_width = $('.productList li').width();
var left_indent = parseInt($('.productList').css('left')) - item_width;
$('.productList').animate({'left' : left_indent},function(){
if( counter > $('.li_group').length - 1) {
$('.nextArrow').addClass('disabled');
$('.prevArrow').removeClass('disabled');
$('#nextArrow').unbind('click');
}
});
counter++;
});
// for sliding left
$('#prevArrow').click(function(){
var item_width = $('.productList li').width();
var left_indent = parseInt($('.productList').css('left')) + item_width;
$('.productList').animate({'left' : left_indent},function(){
if( counter == 1) {
$('.prevArrow').addClass('disabled');
$('.nextArrow').removeClass('disabled');
$('#prevArrow').unbind('click');
}
});
counter--;
});
答案 0 :(得分:0)
您根本不需要使用bind
或unbind
。在您的#nextArrow
和#prevArrow
元素中添加一个类,并将您的选择器更改为仅使用jQuery's :not()
selector处理没有这些类的元素。
例如,在#nextArrow
点击处理程序中,您可以将此类添加到#nextArrow
元素中,并确保将其从#prevArrow
元素中删除:
if( counter > $('.li_group').length - 1) {
$('#nextArrow').addClass('ignore-click');
$('#prevArrow').removeClass('ignore-click');
...
}
然后你可以修改你的jQuery选择器只影响没有ignore-click
类的元素:
$('#nextArrow:not(.ignore-click)').click(...);
$('#prevArrow:not(.ignore-click)').click(...);