Javascript 当我只定义了父div';s点击功能

Javascript 当我只定义了父div';s点击功能,javascript,jquery,html,click,Javascript,Jquery,Html,Click,这是我的代码: <div id="a" style="position:absolute;width:200px;height:200px;background:red;word-wrap:break-word;"> <div id="b" style="width:50px;height:50px;background:blue;"></div> </div> 我想在单击红色div而不是蓝色div时发出警报 演示如下:

这是我的代码:

<div id="a" style="position:absolute;width:200px;height:200px;background:red;word-wrap:break-word;">
            <div id="b" style="width:50px;height:50px;background:blue;"></div>
</div>
我想在单击红色div而不是蓝色div时发出警报

演示如下:

谢谢使用

event.preventDefault()


测试
e.target
的ID

示例:

另一个选项是向调用
e.stopPropagation()
#b
元素添加一个单击处理程序,但我不推荐这样做。有比仅仅为了停止传播而分配处理程序更好的方法(如上面的方法)


编辑:

运行上述测试的另一种方法是直接比较元素,而不是使用其ID:

示例:


如果像这样使用
event.stopPropagation()
,它可以工作:

$( "#b" ).draggable({ containment: 'parent' }).click(function(e){ e.stopPropagation(); });

$('#a').click(function(e){
    alert(e.pageX);
})

在这种情况下,
preventDefault()
方法没有帮助。这用于防止元素的默认行为,例如链接。
元素没有默认行为:o) 我用操作代码在jsFiddler上试过了。似乎不起作用。@patrick你是对的,我明白了,你的代码正在起作用,谢谢你,默认在这种情况下不起作用,请参阅patrick解释,divs不会有任何默认行为。投票通过。这正是我要发布的内容。
http://api.jquery.com/event.preventDefault/
$('#a').click(function(e){
    if( e.target.id === 'a' ) {
        alert(e.pageX);
    }
    //return false;
});
if( e.target === this ) {
    alert(e.pageX);
}
e.preventDefault();
e.stopPropagate();
$( "#b" ).draggable({ containment: 'parent' }).click(function(e){ e.stopPropagation(); });

$('#a').click(function(e){
    alert(e.pageX);
})