您的位置:首页 > Web前端 > JavaScript

js阻止事件冒泡

2017-07-12 16:27 211 查看
今天遇到一个小问题:

<div><li></li></div>


div本身有click事件 然后li也有click事件

当触发li标签的click事件时,div的click事件也会触发

因此加了e.stopPropagation();来阻止事件冒泡

但是Firefox对e不兼容,于是加了e = e||window.event;

e = e||window.event;
e.stopPropagation();    //  阻止事件冒泡


queryUnsualMenu : function(flag){
$.syncReq({
data : {
"reqUrl" : "homeMenu",
"queryFlag" : "queryMyUsualMenu"
},
success : function(data){
var result = eval("("+data+")");

var html="<dl class='fixed-mymenu-open'>";
html+="<dt><i>>></i>我的常用菜单</dt>";
html+="<dd>";
if (result && result.resultCode == "0"){
var obj = result.resultObj;
var menuList= obj.myUsualMenuList;
if(menuList&&menuList.length >0){
for(var i = 0; i < 8; i++){
if(menuList.length>i){
html+="<a class='added' href='javascript:;' name='home_iframe_"+menuList[i].F_MENU_NUM+"' data-url='" + menuList[i].F_MENU_URL+"' data-tip='"+menuList[i].F_MENU_NUM+"_TIP' title='"+menuList[i].F_MENU_NAME+"'>"+menuList[i].F_MENU_NAME+"<i class='delete' value='"+menuList[i].F_MENU_NUM+"' title='删除'></i></a>";
}else{
html+="<a class='add' href='javascript:;' title='添加'></a>";
}
}
}else
{
for(var i = 0; i < 8; i++){
html+="<a class='add' href='javascript:;' title='添加'></a>";
}
}
}else{
for(var i = 0; i < 8; i++){
html+="<a class='add' href='javascript:;' title='添加'></a>";
}
}
html+="</dd>";
html+="</dl>";
var open = $([html].join(''));
var close = $('<a class="fixed-mymenu-close" href="javascript:;"><i><<</i>我的常用菜单</a>');
if($('.fixed-mymenu-open').length) {$('.fixed-mymenu-open').remove();}
$('body').append(open);
if($('.fixed-mymenu-close').length) {$('.fixed-mymenu-close').remove();}
$('body').append(close);
if(!flag){
$('.fixed-mymenu-open').hide();
$('.fixed-mymenu-close').animate({right:0},200);
}
$('.fixed-mymenu-open').on('click','dt',function(){
$(this).parent().animate({right:'-160px'},200);
$('.fixed-mymenu-close').animate({right:0},200);
});
$('.added').on('click','.delete',function(e){
//删除数据库信息
var menuNum = $(this).attr('value');
usualMenuServiceComponent.deleteMenu(menuNum,e);
e = e||window.event; e.stopPropagation(); // 阻止事件冒泡
});
$('.fixed-mymenu-open').on('click','.added',function(e){
var menuText = $(this).attr('title'),
menuNum = $(this).attr('name'),
url = $(this).attr('data-url');
usualMenuServiceComponent.openMenu(menuText,menuNum,url);
e = e||window.event; e.stopPropagation(); // 阻止事件冒泡
});
$('.fixed-mymenu-open').on('click','.add',function(e){
usualMenuServiceComponent.showMenuDiv();
e = e||window.event; e.stopPropagation(); // 阻止事件冒泡
});
$('.fixed-mymenu-close').on('click',function(){
$('.fixed-mymenu-open').show();
$(this).animate({right:'-30px'},200);
$('.fixed-mymenu-open').animate({right:0},200);
});
$('.fixed-mymenu-close').show();
}
});
},
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript