jQuery是 一款優秀的JavaScript框架,在舊版裡主要用bind()方法,在新版裡又多了兩種One(),Live(),下面介紹這幾種方法的使用:
1. bind/Unbind
在jquery的事件模型中,有兩個基本的事件綁定函數,bind與unbind,這兩個函數的意義就是匹配頁面元素進行相關事件的處理。例如我們在JS中常用的 onfocus,onblur,onmouseover,onmousedown等事件都可以當作bind的參數傳遞。
$("#id").bind('click',function(){alert('tt!')});
其中bind的第一個參數代表的意義是:事件類型(注意不需要加on),function中的程式碼就是你要執行的邏輯程式碼
多個事件綁定:bind也允許你綁定定多個事件,事件名字之間以空格隔開,例如:
$('a').bind('click mouseover',function(){
在最新的jquery1.4版本中,對bind方法進行了改進,你可以在bind方法傳入一個類別JSON物件來一次綁定多 個事件處理函數。
$('a').bind({
click:function(){alert('a');},
mouseover:function(){alert('a again!' )}
在function函數中,你也可以透過傳遞一個javaScript對 象給function方法,這個事件物件通常是可以省略的。
bind中還有一個參數data, 此參數一般情況下很少使用,通常為了解決在同一個方法中處理同一個變數時有很好的處理。
var productname="Sports Shoes";
$('#Area').bind('click',function(){
alert(productname);
});
productname="necklace",
$('#Area').bind('click',function(){
alert(productname);
});
由於變數productname被重新賦值,所以輸出的訊息都是」necklace」,這裡不了解可以去查閱下關於JavaScript的變數作用域,要解決這個問題就必須使用到data參數,
var productname="Sports Shoes";
$('#Area').bind('click',{pn:productname},function(){
alert(event.data. pn);
});
productname="necklace",
$('#Area').bind('click',{pn:productname},function(){
alert( event.data.pn);
});
2. One
為每一個匹配元素的特定事件(像click)綁定一個一次性的事件處理函數。此方法與bind方法的參數一樣,與bind方法的區別就是只對匹配元素的事 件處理執行一次,執行完之後,以後再也不會執行,當然重新發起web請求時它又會執行一次。
$('a').one('click',function(){
alert('a');
})
點擊頁面上的a元素後,彈出訊息,除非使用者發起第二次要求,否則再次點擊a元素不會彈出訊息對話框。
3. live
此方法主要是能處理動態加入的元素,給那些後面加上的元素也是一樣綁定事件。
$('a').live('click,function(){
alert('show message!');
})
然後如果我加入一個元素,
$('body').appnend('Another Element');
那麼該元素也會被觸發事件處理函數alert。
另外,jQuery也提供了一些綁定這些標準事件類型的簡單方式,例如.click()用於簡化.bind(‘click')。
一共有以下這些事件名稱:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouses, change mouses, mouse, moveele, mouseover, mouse, change mouse, moves, change mouse. , submit, keydown, keypress, keyup, error 等。