javascript未触发多个事件
然而,我有一个html元素,它假设调用3个JS函数作为它的onchange事件;它只触发第一个函数。我不明白它为什么不这样做javascript未触发多个事件,javascript,html,Javascript,Html,然而,我有一个html元素,它假设调用3个JS函数作为它的onchange事件;它只触发第一个函数。我不明白它为什么不这样做 <select id="dlist" onChange="func1(); func1(); func3()"/> func1 = function(){ //code } func3 = function(){ //code } func2 = function(){ //code } func1=函数(){ //代码 } func3=函数(){
<select id="dlist" onChange="func1(); func1(); func3()"/>
func1 = function(){
//code
}
func3 = function(){
//code
}
func2 = function(){
//code
}
func1=函数(){
//代码
}
func3=函数(){
//代码
}
func2=函数(){
//代码
}
这个问题可能是什么?
<select id="dlist" "onChange=func1(); func1(); func3()"/>
您正在将整个属性用引号括起来。
你想要
试试onChange=“func1();func1();func3()”
移动报价。您可以试试这个
var slt= document.getElementById('dlist').onchange= func1; func1;func3
或
对我来说很好。它调用
func1
和func3
,就像您在属性中调用它一样(请注意,您正在调用func1
两次)。没有调用其他方法的一个原因可能是func1
中出现错误,从而终止执行。但那只是猜测而已。正如你在我的例子中所看到的,如果我按照你发布的代码,它会调用函数。这完全是错误的。这将func1
的返回值分配给.onchange
。现在将func3
分配给.onchange
。。。稍微好一点,但触发事件时只调用func3
,而不是所有三个函数。再次编辑:这将把func1
分配给.onchange
,因此触发事件时只调用func1
(参考第一个代码段)。第二个代码段可以工作,但不必创建命名函数。您可以执行el.onchange=function(){funct1();func2();funct3();}代码>。第一个(以及之前的所有内容)是(逻辑上)不正确的。
var slt= document.getElementById('dlist').onchange= func1; func1;func3
var slt= document.getElementById('dlist').onchange= myAll;
function myAll(){
func1();
func2();
func3();
}