2009-12-28 108 views
0

當用戶單擊選擇控件以選擇一個選項時,onclick和onselect事件都會觸發嗎?如果是這樣,按什麼順序?它依賴於瀏覽器嗎?onclick和onselect javascript事件的順序

謝謝!

+0

好的...我在考慮onchange,而不是選擇(我的代碼中有onchange)。我做了一些測試,發現在Firefox中,onchange在onclick之前,但都是火。 Opera的行爲方式相同。在Chrome中,onclick似乎永遠不會開火,但onchange卻是。我在Linux上,所以我必須去IE來測試它的行爲。 – Andrew 2009-12-28 05:35:32

回答

1

應該很容易測試:

<select onclick="alert('click');" onselect="alert('select');"><option>A</option><option>B</option></select> 
0

它應該是:

  • 鼠標按下
  • 鼠標鬆開
  • 點擊
  • 選擇

但我不確定非標準瀏覽器(IE)是否始終符合此要求。如果有疑問,請用一堆事件監聽器進行測試。

3

select事件不會做你認爲的事情。當您在文本框或textarea中選擇文本時,它會觸發。當您單擊選擇元素火的事件有:

  1. 鼠標按下
  2. 焦點(如果選擇的元素沒有已經有焦點)
  3. 鼠標鬆開
  4. 點擊

當您通過單擊選擇列表中的項目來更改所選值,將觸發change事件。在IE中,每次使用鍵盤更改突出顯示的項目時,都會觸發此事件。在Firefox和Chrome中,您必須點擊「輸入」鍵才能觸發change

+0

對不起,我誤解了我正在使用的事件 - 我正在使用onchange,而不是選擇。不過,這是有用的信息。 – Andrew 2009-12-28 05:37:21