如果我將一個元素中的幾個函數添加到同一事件,會發生什麼?相同元素和事件中的多個函數
例如:
jQuery('#searchButton').click(function(){ /* logic 1 */);
jQuery('#searchButton').click(function(){ /* logic 2 */);
- 總是第一個功能添加到事件將是第一個被稱爲?
- 所有瀏覽器都支持這種類型的東西?
- 函數被異步調用?
感謝
如果我將一個元素中的幾個函數添加到同一事件,會發生什麼?相同元素和事件中的多個函數
例如:
jQuery('#searchButton').click(function(){ /* logic 1 */);
jQuery('#searchButton').click(function(){ /* logic 2 */);
感謝
只是想指出的東西,其他的答案尚未:jQuery的確實保證了活動將在它們被添加的順序被觸發(如引用在John Hartsock的答案中),通過綁定只有一個事件處理程序到任何給定的元素,並保持一個內部函數綁定數組(它具有額外的優勢,能夠刪除匿名函數,否則你不會有一個引用)。這對所有瀏覽器都適用。
但是,如果您將其與任何其他庫直接混合使用,則不能保證。該標準不要求實現遵循任何順序,因此雖然許多實現內部的FIFO結構並不能保證。 Relevant section of the standard。
他們在他們被束縛的順序執行。下面是一個jQuery快速入門一本書的摘錄:
http://www.peachpit.com/articles/article.aspx?p=1371947&seqNum=3