2012-08-08 75 views
2

我有一個html元素,它假設調用3個JS函數作爲onchange事件,但是;它只會觸發第一個功能。我很難理解爲什麼它沒有這樣做。JavaScript多個事件不能觸發

<select id="dlist" onChange="func1(); func1(); func3()"/> 

func1 = function(){ 
//code 
} 

func3 = function(){ 
//code 
} 

func2 = function(){ 
//code 
} 

這個問題可能是什麼?

+0

的Java = JavaScript的 – 2012-08-08 14:01:05

+0

對我的作品罰款:http://jsfiddle.net/BjbDg/。它調用'func1'和'func3',就像你在屬性中一樣(注意,你調用'func1' **兩次**)。 – 2012-08-08 14:04:31

+0

其他方法未被調用的一個原因可能是你在'func1'中有一個錯誤,它會終止執行。但這只是猜測。正如你在我的例子中看到的那樣,如果我在你發佈它的代碼時,它會調用函數。 – 2012-08-08 14:19:09

回答

3
<select id="dlist" "onChange=func1(); func1(); func3()"/> 

您正在將整個屬性包裹在引號中。 想要

<select id="dlist" onChange="func1(); func1(); func3()"/> 
+0

我把它放在了錯誤的地方,這就是它的樣子 – MasterP 2012-08-08 14:03:17

1

嘗試onChange="func1(); func1(); func3()"

移動報價。

+0

它不起作用 – MasterP 2012-08-08 14:03:41

-1

你可以試試這個

var slt= document.getElementById('dlist').onchange= func1; func1;func3 

var slt= document.getElementById('dlist').onchange= myAll; 


function myAll(){ 

func1(); 
func2(); 
func3(); 

} 
+0

這是完全錯誤的,它將'func1'的返回值賦給'.onchange'。 – 2012-08-08 14:05:26

+0

現在將分配'func3 'to'.onchange' ...稍微好一些,但是隻有當事件被觸發時纔會調用func3,而不是所有三個函數。*再次編輯:*這會將'func1'分配給'.onchange',所以只有當觸發事件時會調用func1(參見第一個代碼片段) – 2012-08-08 14:10:41

+0

那麼正確的方法是什麼? – Carlos 2012-08-08 14:15:43