//組織預設行為
preventDefault:function(event){
var event = $$.getEvent(event);
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
},
//阻止冒泡
stopPropagation:function(event){
var event = $$.getEvent(event);
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
//事件對象
getEvent:function(event){
return event?event:window.event;
},
//擷取目标
GetTarget :function(event){
var e = $$.getEvent(event);
return e.target|| e.srcElement;
},
//組織預設行為
preventDefault:function(event){
var event = $$.getEvent(event);
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
},
//阻止冒泡
stopPropagation:function(event){
var event = $$.getEvent(event);
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
//事件委托
delegate:function (pid, eventType, selector, fn) {
//參數處理
var parent = $$.$id(pid);
function handle(e){
var target = $$.GetTarget(e);
if(target.nodeName.toLowerCase()=== selector || target.id === selector || target.className.indexOf(selector) != -1){
// 在事件冒泡的時候,回以此周遊每個子孫後代,如果找到對應的元素,則執行如下函數
// 為什麼使用call,因為call可以改變this指向
// 大家還記得,函數中的this預設指向window,而我們希望指向目前dom元素本身
fn.call(target);
}
}
//當我們給父親元素綁定一個事件,他的執行順序:先捕獲到目标元素,然後事件再冒泡
//這裡是是給元素對象綁定一個事件
parent[eventType]=handle;
}
轉載于:https://www.cnblogs.com/yexiangwang/p/5967827.html