首先說明,你的提問本身就有問題。bind()是一個綁定事件,不是觸發(fā)事件。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供阿拉爾網(wǎng)站建設(shè)、阿拉爾做網(wǎng)站、阿拉爾網(wǎng)站設(shè)計、阿拉爾網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、阿拉爾企業(yè)網(wǎng)站模板建站服務(wù),十多年阿拉爾做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
比如下面代碼的意思是,給id為a的標簽綁定一個click點擊事件,當用戶發(fā)生點擊標簽的時候觸發(fā)。??
bind(eventType?,function)??
eventType?類型可以包括如下:blur,?focus,?focusin,?focusout,?load,?resize,?scroll,?unload,?click,?dblclick,?mousedown,?mouseup,?mousemove,?mouseover,?mouseout,?mouseenter,?mouseleave,?change,?select,?submit,?keydown,?keypress,?keyup,?error?。這里需要注意的是,這里用的都是javascript里面的事件方法,而不是JQuery里面的,JQuery里面的事件方法均在JavaScript?前面多了一個“on”,比如onclick,onblur?等等。
$("#a").bind("click",?function?()?{
alert("Hello?World");
});
//綁定多個事件
$('#a').bind({
click:?function()?{
//?do?something?on?click
},
mouseenter:?function()?{
//?do?something?on?mouseenter
}
});
.bind()是直接綁定在元素上
.live()則是通過冒泡的方式來綁定到元素上的。更適合列表類型的,綁定到document DOM節(jié)點上。和.bind()的優(yōu)勢是支持動態(tài)數(shù)據(jù)。
.delegate()則是更精確的小范圍使用事件代理,性能優(yōu)于.live()
.on()則是最新的1.9版本整合了之前的三種方式的新事件綁定機制
沒啥區(qū)別,個人感覺是喜好寫法問題,我剛測試了一下,沒感覺有啥區(qū)別
D1:
$("#btn").bind("click",function(){
alert("test1");
});
$("#btn").bind("click",function(){
alert("test2");
});
D2:
$("#btn").click(function(){
alert("test1");
});
$("#btn").click(function(){
alert("test2");
});
這兩個執(zhí)行效果一樣,都會依次彈出來兩個對話框
我剛才又研究了一個jquery的源碼,諸如click(),dblclick(),mousemove()這樣的簡單寫法的事件綁定的都是調(diào)用的this.on(
name,
null,
data,
fn
)
這個方法進行事件綁定的,而bind()也同樣是調(diào)用的這個
bind:
function(
types,
data,
fn
)
{
return
this.on(
types,
null,
data,
fn
);
},
所以說
click()只是簡化寫法,而且jquery的文檔里也有關(guān)于這樣的說明
----------------------------
以下的引用jquery文檔的說明
-----------------------------------------
.bind()
方法是用于往文檔上附加行為的主要方式。所有JavaScript事件對象,比如focus,
mouseover,
和
resize,都是可以作為type參數(shù)傳遞進來的。
jQuery還提供了一些綁定這些標準事件類型的簡單方式,比如.click()用于簡化.bind('click')。一共有以下這些:blur,
focus,
focusin,
focusout,
load,
resize,
scroll,
unload,
click,
dblclick,
mousedown,
mouseup,
mousemove,
mouseover,
mouseout,
mouseenter,
mouseleave,
change,
select,
submit,
keydown,
keypress,
keyup,
error
。
bind()函數(shù)是jQuery 1.7之前或更早版本采用的一個用來綁定事件處理程序的函數(shù);on()函數(shù)是jQuery 1.7版本提供的首選的用來綁定事件處理程序的函數(shù);從1.7版本的介紹以及參數(shù)描述來看,其實這兩個函數(shù)基本上用法一致,但可能在早期的版本中,bind()函數(shù)一次只能為標簽對象綁定一個事件的處理程序,而on()函數(shù)則可以一次為多個不同的事件綁定處理程序。
Jquery中bind和live的區(qū)別如下:
1.bind()可以綁定多個事件,live()一次只能綁定一個事件。
區(qū)別在于用live來綁定事件會給所有當前以及將來在頁面上的元素綁定事件(使用委派的方式)。比如說,如果你給頁面上所有的li用live綁定了click事件。那么當在以后增加一個li到這個頁面時,對于這個新增加的li,其click事件依然可用。而無需重新給這種新增加的元素綁定事件。
2.live 目前只支持所有事件的子集,支持列表參考上面的說明。
.live 不支持liveQuery提供的“無事件”樣式的回調(diào)函數(shù)。.live只能綁定事件處理函數(shù)。
.live 沒有”setup”和”cleanup”的過程。因為所有的事件是委派而不是直接綁定在元素上的。
bind() 方法為被選元素添加一個或多個事件處理程序,并規(guī)定事件發(fā)生時運行的函數(shù)。其語法為:
$(selector).bind(event,data,function)
參數(shù)說明如下:
event:規(guī)定添加到元素的一個或多個事件。必需。
data: ?規(guī)定傳遞到函數(shù)的額外數(shù)據(jù)。可選。
function: 規(guī)定當事件發(fā)生時運行的函數(shù)。必需。
示例如下:
//?當點擊鼠標時,隱藏或顯示?p?元素:
$("button").bind("click",function(){
$("p").slideToggle();
});