blur事件模拟

最近在写一个下拉菜单控件,由于样式与传统下拉菜单区别很大,所以没有用传统的下拉菜单标签,是用div写的静态控件。

用js实现其动态功能,其中要在失去焦点时将下拉菜单关闭。

div是没有blur或focusout事件的,最终通过捕获其它元素的mousedown事件来模拟blur事件,参考了jQueryUI日期控件的方法,具体实现如下:

                    $(document).mousedown(function(e){
                        var $target = $(e.target);
                        if( 下拉菜单是否展开 && 点击区域是否是下拉菜单区域){
                          下拉菜单.hide();
                        }
                    });
其中知识点主要两个,一个是确认标签是否有所需的事件可绑定,这个查官方手册就可以知道;一个是event对象,了解event对象的target属性是能定位到的最小dom元素。

posted @ 2011-11-01 22:08  screepinail  阅读(465)  评论(1编辑  收藏  举报