为什么<;按钮onclick="&引用&燃气轮机;当documentgetElemebtById(";)时不要激发。onclick=Function在javascript中是否有作用?
这是我的代码,我想知道为什么display()执行而show()不执行。这背后一定有逻辑。请开导我为什么<;按钮onclick="&引用&燃气轮机;当documentgetElemebtById(";)时不要激发。onclick=Function在javascript中是否有作用?,javascript,html,Javascript,Html,这是我的代码,我想知道为什么display()执行而show()不执行。这背后一定有逻辑。请开导我 <html> <head> </head> <body> <button id="b1" onclick="show()">Show</button> <p id="p1"></p> <p id="p2"></p
<html>
<head>
</head>
<body>
<button id="b1" onclick="show()">Show</button>
<p id="p1"></p>
<p id="p2"></p>
<body>
<script>
function show()
{
document.getElementById("p1").innerHTML="Hello";
}
document.getElementById("b1").onclick=display;
function display(){
document.getElementById("p2").innerHTML="World";
}
</script>
</html>
显示
函数show()
{
document.getElementById(“p1”).innerHTML=“Hello”;
}
document.getElementById(“b1”).onclick=display;
函数显示(){
document.getElementById(“p2”).innerHTML=“World”;
}
如果您只有这两个选项中的一个,则此选项将起作用。问题是第二位代码将覆盖onclick处理程序,这就是为什么第一位永远不会被调用
您可以使用addEventListener
,它不会覆盖现有的侦听器,但会添加一个额外的侦听器。那样的话,双方都会开火,尽管我认为在形式上不能保证你们的订单。但在这个特定的场景中,这并不重要
函数显示()
{
document.getElementById(“p1”).innerHTML=“Hello”;
}
函数显示()
{
document.getElementById(“p2”).innerHTML=“World”;
}
document.getElementById(“b1”).addEventListener(“单击”,显示)代码>
Show
出于同样的原因:
document.querySelector(“P”).innerHTML=“已替换”代码>
原件
您只能用一种方法绑定onclick,要么显示,要么显示EventHandler的onclick属性用于处理给定元素上的单击事件
对于onclick事件,您已经通过
document.getElementById("b1").onclick=display;
一次只能为一个对象分配一个onclick处理程序
显示
函数show()
{
document.getElementById(“p1”).innerHTML=“Hello”;
}
document.getElementById(“b1”).onclick=display;
函数显示(){
document.getElementById(“p2”).innerHTML=“World”;
}
请注意:应避免使用内联js-最好使用eventHandleru,因为它只能使用一种方法绑定onclick!它可以工作!!删除document.getElementById(“b1”).onclick=display代码>并查看差异。您不能在单个事件上显示两个输出。请使用addEventListener
而不是onclick
我假定这是一个输入错误,但是您的第二个
标记应该是
,并且应该在脚本下面。那么您能告诉我为什么有这两种不同的方法来处理事件吗?提供两种变体来正确处理事件,背后一定有一些逻辑!一般来说,这是因为一个存在于另一个之前。多播事件是后来引入的,我想另一个是为了兼容性而保留的。我不知道为什么在你的代码中使用这两个。这是你的密码,对吗?:)另见。我的代码是正确的,但我只是实际检查了为什么有两种方法,以及两种方法同时执行时的输出是什么。