防止事件触发

时间:2015-04-21 17:08:16

标签: javascript jquery twitter-bootstrap

我有两个函数,一个在有人点击可折叠的标题时折叠的东西,我有一个打开模态的函数,但是我用作打开模态的触发器的开放模态图标,是可折叠的标题,所以当有人点击图标时,它会打开模态,并完成崩溃的东西,但我只是想打开模态而不是崩溃的东西,所以我怎么能阻止它触发我的崩溃?

折叠

$(document).on('click', '.panel-heading', function () {

var valgtElement = $(this).next();

$.each($('.panel-collapse'), function (index, value) {

    if ($(this).attr('id') == valgtElement.attr('id')) {
        $(this).collapse('toggle');
    } else {
        if ($(this).hasClass('in')) {
            $(this).collapse('toggle');
        }

    }

});

});

图标点击

$('body').on('click', '.fa-trash-o', function () {

$('#slettModal').modal();

});

3 个答案:

答案 0 :(得分:2)

使用stopPropagation

$('body').on('click', '.fa-trash-o', function (e) {
    e.preventDefault();
    e.stopPropagation();
    $('#slettModal').modal();
});

答案 1 :(得分:1)

只需使用event.stopPropagation()

Link了解更多详情

$('body').on('click', '.fa-trash-o', function (e) {
 e.preventDefault();
 e.stopPropagation();
 $('#slettModal').modal();
});

答案 2 :(得分:0)

试试这个

 $('body').on('click', '.fa-trash-o',
             function (event) {
                event.stopImmediatePropagation()
                $('#slettModal').modal();

  });

确保在函数声明

中包含event参数

http://api.jquery.com/event.stopImmediatePropagation/

How to prevent other event handlers, from first handler, in jQuery