我想做的事情很简单。我想让整个部分可以点击,除了跨度和下面的所有内容,因为我希望链接在其他地方重定向。
<section id="id" class="message">
<div class="message_body">
<font color="color">text</font>
<span style="style">
<a href="url">
<img src="linktoimage"></img>
</a>
</span>
<br></br>
<text name="message_comment" id="message_comment">message</text>
</div>
</section>
我尝试过以下方法:
$('.message:not(span)').click(function() {
window.location.href = "url";
});
和
$(".message").not("span").click(function() {
window.location.href = "url";
});
Chrome和Firefox中的行为都是正确的。但在Safari中,a href链接不起作用。在html中呈现它时它被视为一个链接,但当你点击它时,处理整个类的jQuery行为就会开始,好像它忽略了“不跨越”。无论如何重写这个在Safari,Chrome和Firefox中工作还是我做错了什么?
答案 0 :(得分:1)
您可以定位范围,这样如果他们点击它,点击事件就不会继续冒泡。
$('.message').on('click', function(){
console.log( 'yeah!' );
});
$('.message span').on('click', function (e) {
console.log( 'denied!' );
//stop the event from bubbling up out of the span to the parent elements
e.stopPropagation();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="message">
<span>Click Me!</span>
<div>Other Stuff</div>
</div>
&#13;