Javascript在单击事件中显示主体和单击元素的ID
我有一个js函数,比如check(val)。我称之为身体上的点击事件和一个标签。当我点击body时,它正确地显示body元素的id。但是,当我点击时,它会显示和身体的ID 我只想显示单击时的id和主体的单击事件,以及要执行的其他一些操作 我的示例HTML代码:Javascript在单击事件中显示主体和单击元素的ID,javascript,html,Javascript,Html,我有一个js函数,比如check(val)。我称之为身体上的点击事件和一个标签。当我点击body时,它正确地显示body元素的id。但是,当我点击时,它会显示和身体的ID 我只想显示单击时的id和主体的单击事件,以及要执行的其他一些操作 我的示例HTML代码: <body id="body" onclick="check(this.id);"> <a href="#" id="ele" onclick="check(this.id)">Hello</div&
<body id="body" onclick="check(this.id);">
<a href="#" id="ele" onclick="check(this.id)">Hello</div>
</body>
您获得这两个ID是因为当您单击锚定时,您也在单击主体,因为锚定是主体元素的子元素。您获得这两个ID是因为当您单击锚定时,您也在单击主体,因为锚定是主体元素的子元素。重要注意事项:单击锚点,您也在单击主体 像这样使用
<body id="body" onclick="check(this);">
<a href="#" id="ele" onclick="check(this);">Hello</a>
</body>
重要提示:当你点击锚时,你也在点击身体 像这样使用
<body id="body" onclick="check(this);">
<a href="#" id="ele" onclick="check(this);">Hello</a>
</body>
每个浏览器处理冒泡事件的方式都不同。有些会同时显示,有些只显示链接。您可以更改函数以适应每个单击的元素:
function check(val)
{
alert("Clicked element type is: " + val.nodeName);
}
这样,您就不需要任何id检测,因为您可以检查节点本身的类型。每个浏览器处理冒泡事件的方式都不同。有些会同时显示,有些只显示链接。您可以更改函数以适应每个单击的元素:
function check(val)
{
alert("Clicked element type is: " + val.nodeName);
}
这样,您就不需要任何id检测,因为您可以检查节点本身的类型。您需要使用
event.stopPropagation()
方法停止事件的传播。史蒂芬托马斯在评论你的问题时已经提到了这一点
试试这个
HTML标记:
<body id="body" onclick="check(event,this.id);">
<a href="#" id="ele" onclick="check(event,this.id)">Hello</div>
</body>
function check(event, val) {
if (val == "ele") {
alert("element is clicked");
event.stopPropagation(); //here we stop propagation of the event
} else if (val == "body") {
alert("Body is clicked");
}
}
看这个
我希望这能帮助您……您需要使用event.stopPropagation()
方法停止事件的传播。史蒂芬托马斯在评论你的问题时已经提到了这一点
试试这个
HTML标记:
<body id="body" onclick="check(event,this.id);">
<a href="#" id="ele" onclick="check(event,this.id)">Hello</div>
</body>
function check(event, val) {
if (val == "ele") {
alert("element is clicked");
event.stopPropagation(); //here we stop propagation of the event
} else if (val == "body") {
alert("Body is clicked");
}
}
看这个
我希望这能帮助您……请参阅。关于事件处理的其他文章也很好,您应该阅读它们。请参阅。关于事件处理的其他文章也很好,你应该阅读它们。我想在body
的情况下,这是真的,但是你可能有两个元素没有相互重叠,单击其中一个元素仍然会触发它们各自的处理程序。我想在body
的情况下,这是真的,但是您可能有两个元素彼此不重叠,单击其中一个元素仍然会触发每个元素的处理程序。