1

我有以下 HTML ...

<div id="panel">
<a class="ext" href="http://google.com">Google</a>
</div>

如果我有一个 $(#panel).on({ click: function(e) {...} 事件将扩展 div 高度或折叠它,如果我点击它如何告诉点击事件“不触发”在 .ext 类项目上,以便我可以访问 google.com。

感谢您的任何建议

4

2 回答 2

9

添加这个:

$('.ext').click(function(e) {
    e.stopPropagation();
});

这将防止事件冒泡到#panel元素。

于 2013-08-09T20:44:50.823 回答
3

另一种方法是简单地测试click事件的目标:

$('#panel').on({
    click: function(e) {
        var target = e.target,
            $target = $(target);
        if ($target.hasClass('ext')) {
            window.location = target.href;
        }
        else if {
            // do whatever you'd normally do for a click on #panel
        }
    });

参考:

于 2013-08-09T20:50:41.097 回答