替换.toggle(在jQuery 1.9中

时间:2014-01-22 15:26:11

标签: jquery click toggle

我找到了不同的替代方案,可以在这里为jQuery 1.9切换,但是我不能在我的情况下使用它:

$('.thumb.flip').toggle(
function () {
$(this).find('.thumb-wrapper').addClass('flipStop');
},
function () {
$(this).find('.thumb-wrapper').removeClass('flipStop flipIt');
}
);

2 个答案:

答案 0 :(得分:0)

您可以使用“click”事件,然后使用“:visible”进行检查(如果元素此刻可见):

  • 如果元素可见 - 通过添加类似代码的类来隐藏它,或者只是:〜.hide()

  • 如果元素不可见 - 添加/删除类或使用:〜。show()

答案 1 :(得分:0)

您可以为.flip提供数据属性

<div class="thumb flip" data-clicked="0">

$('.thumb.flip').click(function () {
    var data = $(this).data('clicked'), $descendant=$(this).find('.thumb-wrapper');
    if (data) {
        $descendant.removeClass('flipStop flipIt');
    } else {
        $descendant.addClass('flipStop');
    }
    data == 0 ? $(this).data('clicked', 1) : $(this).data('clicked', 0);
});

或者您可以使用elseif

$('.thumb.flip').click(function () {
    if ($(this).find('.thumb-wrapper').hasClass('flipstop')) {
        $(this).find('.thumb-wrapper').removeClass('flipStop flipIt');
    } else {
        $(this).find('.thumb-wrapper').addClass('flipStop');
    }
});