如何将标签中的元素从后者的行为中豁免?

时间:2016-01-14 18:51:34

标签: jquery stoppropagation event-propagation

在我的页面上,我有一个包含" open_modal"等的不同内容的大a元素。按钮,打开一些Bootstrap模态窗口。单击a元素内的任何位置时,我希望发生正常行为,但是单击" open_modal"应该只打开模态窗口(通过Bootstrap模态类处理)。

HTML:

<a href='example.com'>
    <div class='open_modal'>doing something else</div>
</a>

使用stopPropagation()按钮成功删除了a行为,但遗憾的是它还删除了附加的Bootstrap模态功能,因此它不再执行任何操作:

$( '.open_modal' ).click(function(event) {    
    event.stopPropagation();
});

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您应该使用preventDefault()代替stopPropagation()stopPropagation阻止事件冒泡事件链(即,链中注册的事件不会调用) preventDefault阻止浏览器对该事件进行的默认操作(即,仅阻止当前事件的默认行为)。

$( '.open_modal' ).click(function(event) {    
    event.preventDefault();
});