jQuery on()方法是官方推薦的綁定事件的一個方法。
$(selector).on(event,childSelector,data,
function
,map)
由此擴展開來的幾個以前常見的方法有.
bind()
$(
"p"
).bind(
"click"
,
function
(){
alert(
"The paragraph was clicked."
);
});
$(
"p"
).on(
"click"
,
function
(){
alert(
"The paragraph was clicked."
);
});
delegate()
$(
"#div1"
).on(
"click"
,
"p"
,
function
(){
$(
this
).css(
"background-color"
,
"pink"
);
});
$(
"#div2"
).delegate(
"p"
,
"click"
,
function
(){
$(
this
).css(
"background-color"
,
"pink"
);
});
live()
$(
"#div1"
).on(
"click"
,
function
(){
$(
this
).css(
"background-color"
,
"pink"
);
});
$(
"#div2"
).live(
"click"
,
function
(){
$(
this
).css(
"background-color"
,
"pink"
);
});
以上三種方法在jQuery1.8之后都不推薦使用,官方在1.9時已經(jīng)取消使用live()方法了,所以建議都使用on()方法。
tip:如果你需要移除on()所綁定的方法,可以使用off()方法處理。
$(document).ready(
function
(){
$(
"p"
).on(
"click"
,
function
(){
$(
this
).css(
"background-color"
,
"pink"
);
});
$(
"button"
).click(
function
(){
$(
"p"
).off(
"click"
);
});
});
tip:如果你的事件只需要一次的操作,可以使用one()這個方法
$(document).ready(
function
(){
$(
"p"
).one(
"click"
,
function
(){
$(
this
).animate({fontSize:
"+=6px"
});
});
});
trigger()綁定
$(selector).trigger(event,eventObj,param1,param2,...)
$(document).ready(
function
(){
$(
"input"
).select(
function
(){
$(
"input"
).after(
" Text marked!"
);
});
$(
"button"
).click(
function
(){
$(
"input"
).trigger(
"select"
);
});
});
多個事件綁定同一個函數(shù)
$(document).ready(
function
(){
$(
"p"
).on(
"mouseover mouseout"
,
function
(){
$(
"p"
).toggleClass(
"intro"
);
});
});
多個事件綁定不同函數(shù)
$(document).ready(
function
(){
$(
"p"
).on({
mouseover:
function
(){$(
"body"
).css(
"background-color"
,
"lightgray"
);},
mouseout:
function
(){$(
"body"
).css(
"background-color"
,
"lightblue"
);},
click:
function
(){$(
"body"
).css(
"background-color"
,
"yellow"
);}
});
});
綁定自定義事件
$(document).ready(
function
(){
$(
"p"
).on(
"myOwnEvent"
,
function
(event, showName){
$(
this
).text(showName +
"! What a beautiful name!"
).show();
});
$(
"button"
).click(
function
(){
$(
"p"
).trigger(
"myOwnEvent"
,[
"Anja"
]);
});
});
傳遞數(shù)據(jù)到函數(shù)
function
handlerName(event)
{
alert(event.data.msg);
}
$(document).ready(
function
(){
$(
"p"
).on(
"click"
, {msg:
"You just clicked me!"
}, handlerName)
});
適用于未創(chuàng)建的元素
$(document).ready(
function
(){
$(
"div"
).on(
"click"
,
"p"
,
function
(){
$(
this
).slideToggle();
});
$(
"button"
).click(
function
(){
$(
"<p>This is a new paragraph.</p>"
).insertAfter(
"button"
);
});
});
!評論內(nèi)容需包含中文