$(selector).on(event, childSelector, data, function, map)
event:事件類型(可空格分隔多個,如 "click mouseover")childSelector:委派選擇器(可選),啟用事件委派data:傳遞給處理函數的資料(可選)function:事件處理函數map:事件-處理函數對應物件(可選)| 舊方法 (jQuery 1.8+ 棄用, 1.9 移除) | on() 等效寫法 |
|---|---|
bind('click', fn) | on('click', fn) |
delegate('p', 'click', fn) | on('click', 'p', fn) |
live('click', fn) | $(document).on('click', fn) 或 on('click', selector, fn) 配合委派 |
建議:統一使用 on(),移除綁定用 off(),單次觸發用 one()。
$("p").on("click", function() {
alert("段落被點擊");
});
$("#container").on("click", "p", function() {
$(this).css("background", "pink");
});
// 後續新增的 <p> 也會生效
$("p").on("click", fn);
$("button").click(function() {
$("p").off("click"); // 移除所有 click
$("p").off("click", fn); // 移除特定處理函數
});
$("p").one("click", function() {
$(this).animate({fontSize: "+=6px"});
});
$("input").select(function() {
$(this).after(" 已選取文字!");
});
$("button").click(function() {
$("input").trigger("select"); // 手動觸發 select 事件
});
$("p").on("mouseover mouseout", function() {
$("p").toggleClass("intro");
});
$("p").on({
mouseover: function() { $("body").css("background", "lightgray"); },
mouseout: function() { $("body").css("background", "lightblue"); },
click: function() { $("body").css("background", "yellow"); }
});
$("p").on("myEvent", function(event, name) {
$(this).text(name + "! 你好!").show();
});
$("button").click(function() {
$("p").trigger("myEvent", ["訪客"]); // 傳遞參數陣列
});
function handler(event) {
alert(event.data.msg);
}
$("p").on("click", {msg: "你點擊了我!"}, handler);
$("div").on("click", "p", function() {
$(this).slideToggle();
});
$("button").click(function() {
$("新段落
").insertAfter("button"); // 新增元素自動生效
});