2011-10-12 121 views
1

一個onchange函數我有一個HTML文件中的選擇下拉,我真的不能碰調用來自外部JavaScript

<select id="color" onChange="javascript:changeColor(this)"> 
<option value="black">Black</option> 
<option value="red">Red</option> 
<option value="blue">Blue</option> 
<option value="gold">Gold</option> 
</select> 

我試圖操縱,使用原型JS

var update_dropdown=$$('select#color option'); 
var option_length= update_dropdown.length; 
for (var m = 0; m &lt; option_length; m++) { 
    if(update_dropdown[m].value==selected_ColorId) { 
     update_dropdown[m].selected=true; 
    } 
} 

是有任何方式,我可以調用onChange事件,這是在html中調用,就像在這個例子changeColor()?我使用原型js 謝謝

+0

不完全相同的問題,但這個問題我給你一些見解。 http://stackoverflow.com/questions/2790583/javascript-append-to-onclick-event –

回答

1

您不需要自己調用更改事件。由於變化事件只是與您的JavaScript函數相關聯的,您可以直接使用適當的參數調用changeColor函數來模擬實際事件發生的時間。

var selectObj = document.getElementById('color'); 
changeColor.call(selectObj, selectObj); 

這將做同樣的事情,changeColor(this)

僅供參考,在兩個參數changeColor.call(A,B),所述a參數設置this指針在changeColor功能成爲你選擇對象和b參數設置的第一個函數參數在changeColor功能成爲你的選擇對象,以匹配你在HTML中調用它的方式。