js对页面上区域判断的问题

YueZheng 发布于 2013/08/02 10:41
阅读 724
收藏 1

遇到的问题下图中有详细的描述:点击滑动块以外的区域,滑动块消失,但是需要排除一些特殊区域(表格中的名字,其他对话框等等),我现在采用的是判断点击区域是不是属于这些特殊区域。但是这样的区域很多,以后可能还要增加,这样就导致我用了一堆的if...else来判断。

请问有没有其他的优雅的实现方式??感谢!

(下图使用的是原型工具:Balsamiq Mockups)

加载中
1
行陌路
行陌路
$(document).clikc(function(e){if($(e.target).is(需要拦截的))return false;滑块hide})
0
xesam
xesam
在body上绑定"隐藏滑动块"事件,然后在特殊区域绑定"拦截冒泡".
0
铂金族长
铂金族长
没学过jquery吧。。。。
0
进击的程序员
进击的程序员
那草图是用什么工具画的?
0
YueZheng
YueZheng

引用来自“柔软胖子”的答案

那草图是用什么工具画的?
Balsamiq Mockups
0
YueZheng
YueZheng

引用来自“行陌路”的答案

$(document).clikc(function(e){if($(e.target).is(需要拦截的))return false;滑块hide})

谢谢你的回答,我的思路跟你的是一致的,不过需要拦截的区域类型比较多,先看一下我的实现(注释里都是需要拦截的区域):

var clickedNode = $(e.target) || $(e.srcElement);
if (clickedNode.parents(".detail-wapper").length > 0){ //弹出块内部
}else if(clickedNode.attr("class") == "detail-wapper"){ //弹出块自己
}else if(clickedNode.hasClass("detail-link")){ // 上部的名字
}else if(clickedNode.attr('class') == "btn-console"){ // 某个按钮
}else if(clickedNode.parents(".workflow").length > 0){ // 其他弹出框
}else{
    hideBlock();
}
有办法优化吗?
返回顶部
顶部