簡體   English   中英

將匿名函數分配給onchange

[英]Assign anonymous function to onchange

我有以下代碼:

var select = document.getElementById('test');

select.onchange = (function() {   
    alert(select.options[0].value);
})();

我正努力做這項工作,但沒有運氣。 我希望這個匿名函數在加載時觸發,然后應該對change事件起作用。 任何人都可以解釋我為什么不工作?

http://jsfiddle.net/Lnybn/2/

問題是你們都定義了一個函數並在之后立即調用它,將結果分配給onchange 只需刪除parens來指定一個函數:

select.onchange = function() {   
    alert(select.options[0].value);
};

如果你想立即觸發這個函數,將整個表達式包裝在parens中,然后調用它:

(select.onchange = function() {   
    alert(select.options[0].value);
})();

...由於賦值操作的結果是賦值,在這種情況下,它是一個函數。

只需添加以下行:

document.onload = select.onchange();

演示: http//jsfiddle.net/Lnybn/4/

您無法分配該功能並同時調用它。 它沒有任何意義。 首先分配它:

var select = document.getElementById('test');

select.onchange = function() {   
    alert(select.options[0].value);
};

其實你是JSFiddle的例子在這里很好。 ;-)

然后,如果你想在頁面加載時調用它,只需執行它,但在分配之后;

select.onchange();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM