綁定事件的其他方式
$(function(){
? ? $('#div1').bind('mouseover click', function(event) {
? ? ? ? alert($(this).html());
? ? });
});
取消綁定事件
$(function(){
? ? $('#div1').bind('mouseover click', function(event) {
? ? ? ? alert($(this).html());
? ? ? ? // $(this).unbind();
? ? ? ? $(this).unbind('mouseover');
? ? });
});
主動觸發(fā)與自定義事件
主動觸發(fā)?
可使用jquery對象上的trigger方法來觸發(fā)對象上綁定的事件判没。
自定義事件?
除了系統(tǒng)事件外催首,可以通過bind方法自定義事件,然后用trigger方法觸發(fā)這些事件干发。
事件冒泡
在一個對象上觸發(fā)某類事件(比如單擊onclick事件),如果此對象定義了此事件的處理程序史翘,那么此事件就會調用這個處理程序枉长,如果沒有定義此事件處理程序或者事件返回true,那么這個事件會向這個對象的父級對象傳播琼讽,從里到外必峰,直至它被處理(父級對象所有同類事件都將被激活)
事件冒泡的作用?
事件冒泡允許多個操作被集中處理(把事件處理器添加到一個父級元素上,避免把事件處理器添加到多個子級元素上)跨琳,它還可以讓你在對象層的不同級別捕獲事件自点。
阻止事件冒泡?
事件冒泡機制有時候是不需要的,需要阻止掉脉让,通過 event.stopPropagation() 來阻止
阻止默認行為?
阻止右鍵菜單
$(document).contextmenu(function(event) {
? ? event.preventDefault();
});
合并阻止操作?
實際開發(fā)中桂敛,一般把阻止冒泡和阻止默認行為合并起來寫,合并寫法可以用
// event.stopPropagation();
// event.preventDefault();
// 合并寫法:
return false;
事件委托
事件委托就是利用冒泡的原理溅潜,把事件加到父級上术唬,通過判斷事件來源的子集,執(zhí)行相應的操作滚澜,事件委托首先可以極大減少事件綁定次數粗仓,提高性能;其次可以讓新加入的子元素也可以擁有相同的操作设捐。
取消事件委托
// ev.delegateTarge 委托對象
$(ev.delegateTarge).undelegate();
// 上面的例子可使用 $list.undelegate();
事件委托的寫法
$(function(){
? ? $list = $('#list');
? ? $list.delegate('li', 'click', function(event) {
? ? ? ? $(this).css({background:'red'});
? ? });
})
jquery元素節(jié)點操作
創(chuàng)建節(jié)點
var $div = $('<div>');
var $div2 = $('<div>這是一個div元素</div>');
插入節(jié)點?
1借浊、append()和appendTo():在現(xiàn)存元素的內部,從后面插入元素
var $span = $('<span>這是一個span元素</span>');
$('#div1').append($span);
......
<div id="div1"></div>
2萝招、prepend()和prependTo():在現(xiàn)存元素的內部蚂斤,從前面插入元素
3、after()和insertAfter():在現(xiàn)存元素的外部槐沼,從后面插入元素
4曙蒸、before()和insertBefore():在現(xiàn)存元素的外部捌治,從前面插入元素
刪除節(jié)點
$('#div1').remove();