? ? JavaScript和HTML 之間的交互是通過用戶和瀏覽器操作頁面時引發的事件來處理的。當文檔或者它的某些元素發生某些變化或操作時,瀏覽器會自動生成一個事件。例如當瀏覽器裝載完一個文檔后,會生成事件;當用戶單擊某個按鈕時,也會生成事件。雖然利用傳統的JavaScript事件能完成這些交互,但jQuery增加并擴展了基本的事件處理機制。jQuery不僅提供了更加優雅的事件處理語法,而且極大地增強了事件處理能力。
1.$(document).ready()
$(document).ready()方法和window.onload方法有相似的功能,但是在執行時機是有區別的。window.onload方法是在網頁中所有的元素(包括元素的所有關聯文件)完全加載到瀏覽器后才執行。而通過jQuery中的$(document).ready()方法是在網頁中所有DOM結構繪制完畢后就執行,可能DOM元素關聯的東西并沒有加載完。
使用方法:
(1)$(document).ready(function(){? ?//代碼? ? })
(2)$(function(){? ?//代碼})
(3)$().ready(function(){? ?//代碼})
2.事件綁定bind()
在文檔裝載完成后,如果打算為元素綁定事件來完成某些操作,則可以使用bind()方法來對匹配元素進行特定事件的綁定。
使用方法:
bind(type [,data],fn);? ?簡寫? ?$('#...").type(function(){? ?//代碼});
第一個參數是事件類型;
第二個參數為可選參數,作為event.data屬性值傳遞給事件對象的額外數據對象;
第三個參數則是用來綁定的處理函數。
3.合成事件? ?hover()和toggle()
(1)hover()方法
hover(enter,leave);
hover()方法用于模擬光標懸停事件。當光標移動到元素上時,會觸發指定的第一個函數(enter);當光標移出這個元素時,會觸發指定的第二個函數(leave).
注:hover()方法準確來說是替代jQuery中的bind("mouseenter")和bind("mouseleave"),而不是替代bind("mouseover")和bind("mouseout")
(2)toggle()
toggle(fn1,fn2,fn3,...fnN);
toggle()方法用于模擬鼠標連續單擊事件。第一次單擊元素,觸發指定的第一個函數(fn1);當在此單擊同一元素時,則觸發指定的第二個函數(fn2);如果有更多函數,則依次觸發,直到最后一個。隨后的每次單擊都重復對這幾個函數的輪番調用。