根据单击的元素阻止某些功能

时间:2015-03-04 15:01:28

标签: javascript jquery

我有一个按钮.btn-1,当点击时也触发点击.btn-2我无法想办法执行以下操作:点击.btn-2时也会触发点击在.btn-1但是在这种情况下,忽略其功能以触发点击'.btn-2'以防止无限循环。有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:1)

您可以使用.trigger()方法将其他数据传递给处理程序:

$('.btn-2').on('click', function(event, skip) {
    // if the skip parameter is a truthy value
    // don't trigger the event
    if ( !skip ) {
       $('.btn-1').trigger('click', [true]);
    }
});

$('.btn-2').trigger('click', [true]);

答案 1 :(得分:0)

你可以使用一个切换的布尔值:

var done=true;

$('.btn-1').click(function(){
    $('log').html($('log').html()+'bt1 pressed<br>')
    if(done){
        done=false;
        $('.btn-2').click()
    }
    done=true;
})

http://jsfiddle.net/2o3k5wet/

答案 2 :(得分:0)

更优雅的方法:

$('.btn-1, .btn-2').on('click', function() {
    // do common stuff
    if ($(this).is('.btn-1')) {
        // do stuff only for 1
    }
    // do common stuff
});