jquery实现点击某元素之外触发事件

671 阅读1分钟

jq如何实现这个功能呢?其实也不难,大概思路就是,在document上面绑定一个事件,当用户触发document的事件时,判断一下目标元素是什么,然后再执行相应的操作就行了。

<script>
    $(function(){
        $(document).bind("click",function(e){
            //id为menu的是菜单,id为open的是打开菜单的按钮            
            if($(e.target).closest("#menu").length == 0 && $(e.target).closest("#open").length == 0){
            //点击id为menu之外且id不是不是open,则触发
                close();
            }
        })
    })

    function close(){
        //close menu...
    }

    function open(){
         //open menu...
    }
</script>

利用事件冒泡也可以实现类似的效果。