JS扑捉一个按钮事件之外的其他事件

              用了js那么久了,偶感js给页面带来的快感不经欣慰,但是由于现在的浏览器五花八门,有如万花筒变化莫测,在ie上明明是好的,在firefox上确出现了问题,在搜狗上确又是好的,由于浏览器的版本不同又或多或少出现一些bug,而不懂程序的测试员们来说,以为小小修改就会好,岂不知这一修改一调试又嘚发上大半时间。唉,废话少说了,来说一个经典例子吧,也可以给大家日后工作中带来方便。下面就拿:JS扑捉一个按钮事件之外的其他事件来举例:

           event我们都知道这代表事件,但是不同的浏览器区别就大了,拿IE,FireFox来说:event 在ie中表示:window.event ; firefox上表示:event (或者firefox要是不行,还可以通过方法来表示如:

               function 产生event(){    //同时兼容ie和ff的写法,取事件对象
            alert(arguments[0] || window.event)  // ie 和 ff下,都显示 "[object]"
             var evt=arguments[0] || window.event
           var element=evt.srcElement || evt.target  //在 ie和ff下 

             alert(element.id) }

)要是还是不行的话,最佳解决办法,就是在事件里加入参数event这样就完全ok

          言归正传下面用示例说话:

          做一个除了点击id为txtContents或者btnOks的按钮提示点击位置正确,点击网页其他的地方就提示点击的位置不正确的小应用,敬请关注代码如下:

     /*引用JQuery*/

     <script type="text/javascript">
    /*文档就绪函数ready*/
     $(document).ready(function(){
      document.body.onclick=showInfo;  //文档其他地方的点击事件

      });

   function showInfo(event){

 var _event=event?event:window.event;   //这样是为了在IE或者Firefox下调用event对象

 //firefox下得到事件源是:event.target
 var _target=_event.target?_event.target:_event.srcElement; ////这样是为了在IE或者Firefox下得到事件源

  var _id=_target.id;
  if(_id=="")
  {
    _id=_target.parentNode.id;
  }
 // alert(_id);
  if(_id!=="txtContents" && _id!=="btnOks")
  {
  alert("请点击正确的位置");
  }
  else
  {
   alert("点击正确!");
  }

 }

   </script>

    哈哈,,相信大家看过了之后对弹出div层,点击其他地方隐藏弹出的div层不就小意思了!


阅读更多
个人分类: JavaScript自学大全
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭