js阻止事件冒泡
2017-07-12 16:27
211 查看
今天遇到一个小问题:
div本身有click事件 然后li也有click事件
当触发li标签的click事件时,div的click事件也会触发
因此加了e.stopPropagation();来阻止事件冒泡
但是Firefox对e不兼容,于是加了e = e||window.event;
<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();
}
});
},
相关文章推荐
- js 兼容性之阻止事件冒泡传递
- js中阻止事件冒泡
- Js 冒泡事件阻止
- JS,Jquery中事件冒泡以及阻止事件冒泡方法
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 转载
- 用JS阻止事件冒泡
- js阻止事件冒泡的DEMO
- js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
- Js阻止事件冒泡 弹出层后点击body区域层消失
- js 停止事件冒泡和阻止浏览器默认事件
- js阻止事件冒泡——hack方法和对象方法
- js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
- JS阻止事件冒泡
- JS:停止事件冒泡和阻止浏览器的默认行为 js/jquery/prototype
- 阻止js事件冒泡
- JS阻止事件冒泡
- js 阻止冒泡 在控件的 onxxx 事件中调用就可以阻止父控件也响应消息了
- js 兼容阻止事件冒泡stopPropagation
- JS阻止冒泡事件以及默认事件发生
- Js 冒泡事件阻止