3 回答

TA貢獻1744條經驗 獲得超4個贊
沒啥區別,個人感覺是喜好寫法問題,我剛測試了一下,沒感覺有啥區別
D1:
$("#btn").bind("click",function(){
alert("test1");
});
$("#btn").bind("click",function(){
alert("test2");
});
D2:
$("#btn").click(function(){
alert("test1");
});
$("#btn").click(function(){
alert("test2");
});
這兩個執行效果一樣,都會依次彈出來兩個對話框
我剛才又研究了一個jquery的源碼,諸如click(),dblclick(),mousemove()這樣的簡單寫法的事件綁定的都是調用的this.on( name, null, data, fn ) 這個方法進行事件綁定的,而bind()也同樣是調用的這個
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
},
所以說 click()只是簡化寫法,而且jquery的文檔里也有關于這樣的說明
---------------------------- 以下的引用jquery文檔的說明 -----------------------------------------
.bind() 方法是用于往文檔上附加行為的主要方式。所有JavaScript事件對象,比如focus, mouseover, 和 resize,都是可以作為type參數傳遞進來的。
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 。

TA貢獻1875條經驗 獲得超5個贊
這兩個是有區別的,用到的地方不同;
$(#nav a).click(function(){})這個是硬代碼;
bind是動態綁定。
如果一個頁面的某個元素最初沒有點擊事件,
直到某一條件達成之后才添加點擊事件就需要用到bind函數了

TA貢獻1946條經驗 獲得超4個贊
當一個方法沒有打印完成時,用綁定事件寫在這個方法內,可以同時進行打印和綁定你所要發生的事件,而click事件不能寫在這個方法內部,必須寫在外面,才能正常運行。
例如:
function searchConditions(){
var strSearch = "<div class=\"P1_top_left\"> </div>"
+ '<div class="P1_top_middle">'
+ '<div class="P1_search_left">'
+'<label class="P1_search_left_img"><img src="imgs/filter.png" /></label>'
+'<label class="P1_search_left_text">篩選條件</label>'
+'</div>'
+ '<div class="P1_search_center"></div>'
+ '<div class="P1_search_right"><label><input id=\"iIpt_txt_search\" class="P1_txt_search" name="txt_search" type="text" /></label>'
+'<label><input id=\"iIpt_btn_search\" class="P1_btn_search" type="button" value="搜一下" /></label></div>'
+'</div>'
+ "<div class=\"P1_top_right\"> </div>";
$("#P1_div_search_top").html(strSearch);
$("#iIpt_btn_search").bind({
click:function(){
searchList();
}
});
$("#iIpt_txt_search").bind({
keyup:function(event){
if(event.keyCode=="13"){
searchList();
}
}
});
}
這樣寫不知道你能不能理解?
添加回答
舉報