jQuery点击页面上某元素之外的地方进行指定操作

页面点击经常会有这样的需求,点击某元素之外的地方将指定元素给隐藏起来。

如上图,需要点击页面中除下拉框区域(下拉树,文本框,下拉箭头)之外的元素,隐藏下拉框。

页面元素点击事件绑定:

        $(document).on('click',':not(.combo_tree_panel)',function(){
            $combotreePanel.hide();
            return;
        })
这样就可以监听除了下拉框区域之外的点击事件,将下拉面板给隐藏起来。

但是这样点击下拉框区域中的任意元素,还是会隐藏下拉面板,

.combo_tree_panel这个元素区域也属于document范围内,这里发生了事件冒泡。bubble..oO.....

所以还要在下拉框区域的单击事件中阻止事件冒泡。

        $(".combo_tree_panel").click(function(event){
            event.stopPropagation();
        });
注:jQuery对event的阻止冒泡处理已作了兼容性处理,stopPropagation();

jQuery.Event.prototype = {
    stopPropagation: function() {
        this.isPropagationStopped = returnTrue;
        var e = this.originalEvent;
        if ( !e ) {
            return;
        }
        // if stopPropagation exists run it on the original event
        if ( e.stopPropagation ) {
            e.stopPropagation();
        }
        // otherwise set the cancelBubble property of the original event to true (IE)
        e.cancelBubble = true;
    }
}




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值