1
A
回答
2
Yes,你可以有多個事件監聽器,並且沒有,使用多個屬性是不正確的(請參閱我的評論)。
0
validator會告訴你它是否有效。我會告訴你,練習behavorial separation會更好。
+0
不,它不會,一個元素只能有一個給定屬性的實例 – Quentin 2009-06-08 18:46:21
1
Here是如何正確連接多個處理程序數字醚一個很好的例子,工程無論是在符合標準的瀏覽器和IE瀏覽器:
/**
* Add events
* @param Object HTML Element
* @param string name of trigger
* @param string name of function to attach
* @param bool capture
*/
addEvent = function(el, evType, fn, useCapture) {
if (el.addEventListener) {
el.addEventListener(evType, fn, useCapture);
return true;
}
else if (el.attachEvent) {
var r = el.attachEvent('on' + evType, fn);
return r;
}
else {
el['on' + evType] = fn;
}
}
0
我認爲這是不合法的標記的情況下,出現這種情況的工作在某些瀏覽器中。因此,它應該被認爲是一些需要重構的代碼。
正如Josh Stodola和David Dorward指出的那樣,元素不能有多個相同屬性的實例,並且W3C validator也會指出這一點。
但是,有些瀏覽器相當寬容,無論驗證如何都會讓事情順利進行;但其他人不會,而且這些瀏覽器的用戶將會遇到問題。基本上,你會發現自己處於奇怪的邊緣情況和不受支持的行爲:很難保證它在哪些瀏覽器中工作(我在Firefox 3中嘗試了一個類似於你的片段並且失敗了),因爲它違反了規範;而且,由於它違反了規範,因此不能保證事件將以什麼順序觸發,所以如果這很重要,則無法真正保證事件觸發的順序。
似乎有點清理是爲了。
相關問題
- 1. 是否只有一個事件處理程序的所有對象的副本
- 2. HTML事件處理程序與React事件處理程序
- 3. 是否有可能在事件處理程序啓動時追蹤事件處理程序的順序?
- 4. 沒有事件處理程序的綁定事件。爲什麼它有效?
- 5. 在一個處理程序中處理所有事件?
- 6. 當事件處理程序沒有完成時事件是否被觸發?
- 7. VB.NET:即使沒有事件處理程序,是否會引發事件?
- 8. QTP是否有任何事件處理程序或測試引擎事件?
- 9. 是否有這樣的事,作爲一個「所有」 JavaScript錯誤處理程序?
- 10. 在Java中處理事件:它是否需要空的事件處理程序
- 11. 是否有可能將處理程序綁定到jQuery效果?
- 12. 如何知道一個事件有多少事件處理程序?
- 13. 是否有涉及事件處理的單獨線程?
- 14. c#多個事件的相同事件處理程序
- 15. 調用具有多個控件的控件事件處理程序
- 16. 是否有太多的$(document).ready處理程序(IE)?
- 17. 多個JavaScript處理程序是否可以註冊一個事件?
- 18. 是否可以將單個處理程序附加到多個事件?
- 19. 這是一個有效的Sinatra路線處理程序嗎?
- 20. PyQt,Qt,一個事件處理程序,處理很多項目
- 21. 是否有重構此SQLite數據庫處理程序的有效方法?
- 22. 當是有必要手動遞減的事件處理程序
- 23. Qt:事件是否按順序處理?
- 24. 帶有一個事件處理程序的多個操作按鈕閃亮?
- 25. 檢查附加的事件處理程序是否有任何DOM元素
- 26. 這兩種刪除事件處理程序的方式是否有區別?
- 27. 是否有創建新頁面時的InDesign事件處理程序?
- 28. JQuery是否會覆蓋現有的內聯事件處理程序?
- 29. 有很多事件的大表,是否使用事件冒泡更有效?
- 30. 在現有處理程序之前附加我的事件處理程序
正如Alex的例子所顯示的,添加多個事件監聽器的方式並不是通過將多個onXXX屬性設置爲不同的值(這是無效的標記,驗證器會告訴您這一點(請參閱Josh的回答)。在大多數瀏覽器上工作 – laginimaineb 2009-06-09 05:09:21