<script type="text/javascript">
var oDiv=document.getElementById('div1');
function addEvent(obj, ev, fn){
if(obj.attachEvent){
obj.attachEvent('on'+ev, fn);
}else{
obj.addEventListener(ev, fn, false);
}
}
function cancelBub(ev){
var ev=ev||window.event;
if(ev.cancelBubble){
ev.cancelBubble=true;
}else{
ev.stopPropagation();
}
}
function aa(){
alert('aa');
}
function bb(){
alert('bb');
}
function cc(){
alert('cc');
};
addEvent(document, 'click',aa)
addEvent(document, 'click',bb)
addEvent(oDiv, 'click',cc)
</script>cancelBub是取消冒泡的函数,那我如何只取消addEvent(oDiv, 'click',cc)这个的冒泡呢?请教了~~
var oDiv=document.getElementById('div1');
function addEvent(obj, ev, fn){
if(obj.attachEvent){
obj.attachEvent('on'+ev, fn);
}else{
obj.addEventListener(ev, fn, false);
}
}
function cancelBub(ev){
var ev=ev||window.event;
if(!ev.cancelBubble){
ev.cancelBubble=true;
}else{
ev.stopPropagation();
}
}
function aa(){
alert('aa');
}
function bb(){
alert('bb');
}
function cc(){
cancelBub();
alert('cc');
} addEvent(document, 'click',aa);
addEvent(document, 'click',bb);
addEvent(oDiv, 'click',cc);
</script>
if(!ev.cancelBubble)
另一处function cc()里加上cancelBub();
<script type="text/javascript">
var oDiv = document.getElementById('div1'); function addEvent(obj, ev, fn) {
if (obj.attachEvent) {
obj.attachEvent('on' + ev, fn);
}
else {
obj.addEventListener(ev, fn, false);
} }
function aa() {
alert('aa');
} function bb() {
alert('bb');
} function cc(ev) {
alert('cc'); var e = (ev) ? ev : window.event;
if (window.event) {
e.cancelBubble = true;
} else {
e.stopPropagation();
} }; addEvent(document, 'click', aa)
addEvent(document, 'click', bb)
addEvent(oDiv, 'click', cc)
</script>
为什么要if(!ev.cancelBubble)一下呢,这样有什么好处呢?