Javascript JQuery可点击图像+;单独包装
我的媒体对象设置如下:Javascript JQuery可点击图像+;单独包装,javascript,jquery,Javascript,Jquery,我的媒体对象设置如下: <div class="row chatrow" userid='123'> <div class="media"> <a class="pull-left" href="#"> <img class="media-object img-circle" src='image1.png' style="display: block;"> </a
<div class="row chatrow" userid='123'>
<div class="media">
<a class="pull-left" href="#">
<img class="media-object img-circle" src='image1.png' style="display: block;">
</a>
<div class="media-body">
<h4 class="media-heading">User 1</h4>
Hello, how are you doing?
</div>
</div>
</div>
但每次单击时都会重定向。是否可以防止直接点击图像?您需要使用
stopPropagation
方法停止事件冒泡:
$('a')。在('click')上,函数(e){
警报(“链接”);
e、 停止传播();
});
$('.chatrow')。在('click',function()上{
警报(“聊天室”);
//window.location.href=“chat.php?id=“+$(this.attr('userid');
});代码>
用户1
你好,你好吗?
您需要在a标记上返回false语句
返回false;防止该事件传播(或“冒泡”)
大教堂。你可能不知道这一点是什么时候
发生在一个元素上,该事件在每个父元素上触发
元素。假设你在盒子里有一个盒子。两个盒子
有点击事件。单击内部框,单击将显示
也在外盒上触发,除非您阻止传播
来源:psst,您从未声明过e
。与下面的答案相比,这个答案有什么好处?在这个答案中,您明确表示希望防止事件冒泡<代码>返回false
也会执行此操作,但会隐式执行。只需选择您更喜欢的一个。尝试$('.chatrow a')。在('click',function(){})
上,这是真的,在jQuery的情况下返回false
也将stopPropagation
以及preventDefault
。
$('a').on('click',function() {
console.log('yes');
})
$('.chatrow').on('click',function() {
window.location.href = "chat.php?id=" + $(this).attr('userid');
})
$('a.pull-left').on('click',function(e) {
console.log('yes');
return false;
})
$('.chatrow').on('click',function() {
//window.location.href = "chat.php?id=" + $(this).attr('userid');
console.log('chatrow');
});