事件綁定
第一種:$(selector).事件(fn)
$(document).click(function () {
//代碼
});
第二種:$(selector).bind(”事件1 事件2 …”,fn)
$(document).bind("click mouseenter", function () {
//代碼
})
第三種:$(selector).delegate(selector,[events],[data],fn)
jQuery 3.0中已棄用此方法,請用 on()代替。
參數:
selector:觸發事件元素,可以沒有
events:事件
data:傳遞到函數的額外數據
$(document).delegate(".box","click mouseenter",{"top":1}, function (event) {
alert(event.data.top);
})
第四種:$(selector).on(events,[selector],[data],fn)【推薦使用】
參數:
events:事件
selector:觸發事件元素,可以沒有
data:傳遞到函數的額外數據
$(document).on("click mouseenter",".box",{"top":1to}, function (event) {
alert(event.data.top);
});
事件解綁
事件解綁儘量遵循用什麼方式綁定就用什麼方式解綁
第一種和第二種解綁:$(selector).unbind(events,[fn])
$(document).unbind("mouseenter");
第三種解綁:$(selector).undelegate([selector,[events],fn])
$(document).undelegate(".box","mouseenter",fn)
第四種解綁:off(events,[selector],[fn])
$(document).off("mouseenter",".box");
事件觸發
第一種觸發方式:$(selector).事件()
此方法會觸發瀏覽器行爲(效果)
$(document).click();
$(document).mouseenter();
第二種觸發方式:$(selector).trigger(events,[data])
此方法會觸發瀏覽器行爲
$("input").trigger("focus");
第三種觸發方式:$(selector).triggerHandler(events, [data])
此方法只會執行代碼,不會觸發瀏覽器行爲
$("input").triggerHandler("focus");