zoukankan      html  css  js  c++  java
  • Jquery的事件

    一,加载DOM
      1,执行时机
      window.onload:在页面(包括外部文件,图像等),完全加载之后触发,等同于$(window).load(function(){})
      $(document).ready(function(){}):在DOM树解析完成之后,无需等待外部文件,图像等加载
      2,多次使用
      window.onload:不能多次执行,如想执行多个函数,需放在window.load=function(){//多个函数}内部
      $(document).ready(function(){//代码});可以多次执行
      3,简写方法
      $(document).ready(function(){//代码}) == $(function(){//代码});
    二,事件绑定
      bind(type[.data],function(){//代码});
      one(type[.date],function(){});只在用户第一次触发事件时有用
      1,基本效果
      $(function(){
        $("#id element.class").bind("click",function(){
          $(this).next().show();
        });
      });
      2,加强效果
      $(function(){
        $("#panel h5.head").bind("mouseover",function(){
          var $content = $(this).next();
          if($content.is(":visible")){
            $content.hide();
          }else{
            $content.show();
          }
        })
      })
      3,改变绑定事件的类型
      $(function(){
        $("#panel h5.head").bind("mouseover",function(){
          $(this).next().hide();
        }).bind("mouseout",function(){
          $(this).next().show();
        });
      })
      4,简写绑定事件
      $(function(){
        $("#panel h5.head").mouseover(function(){
          $(this).next().hide();
        }).mouseout(function(){
          $(this).next().show();
        });
      })
    三,合成事件
      1,hover()方法
      两个参数hover(enter,leave),用于模拟光标悬停事件,光标在元素之上调用第一个函数,离开调用第二个函数
      2,toggle()方法
      toggle(fn1,fn2,fn3,..fnN),第一次单击触发第一个函数,再单击触发第二个函数,依次下去
      可以方便的切换元素的可见状态
    四,事件冒泡
      1,事件对象
      $("element").bind("click",function(event){});
      单击element元素时,事件对象就被创建了,这个事件只有事件处理程序能访问到,事件处理函数执行结束,事件对象被销毁
      2,停止事件冒泡
      stopPropagation()方法来阻止事件冒泡
      $("element").bind("click",function(event){event.stopPropagation();//事件处理函数});
      或者return false
      3,阻止默认行为
      preventDefault()方法
      $("element").bind("click",function(event){event.preventDefault();//事件处理函数});
      4,事件捕获
    J  query不支持事件捕获
    五,事件对象的属性
      event.type:获取事件的类型
      event.preventDefault():阻止事件的默认行为
      event.stopPropagation():阻止事件的冒泡
      event.target:获取触发事件的元素
      event.relatedTarget:获取相关元素,只有mouseover和mouseout事件会产生相关元素
      event.pageX,event.pageY:获取光标相对于页面(加上滚动条的宽度或高度)的X,Y坐标,
      event.which:鼠标单击事件中获取鼠标的左中右键(1,2,3)
      event.metakey:获取ctrl按键
    六,移除事件
      1,移除按钮元素上以前注册的事件
      $("#btn").unbind("click"),删除click事件,没有参数删除所有事件
      2,移除button元素中的一个事件
      $("#btn").unbind("click",fn1),删除函数名为的fn1的click事件
    七,模拟操作
      1,常用模拟
      $("#btn").trigger("click") == $("#btn").click(),模拟用户点击
      2,触发自定义事件
      绑定事件$("#btn").bind("click",function(){$("#test").append("<p>我是自定义事件</p>");});
      触发事件$("#btn").trigger("myclick");
      3,传递数据
      触发事件中传递数据,区别事件是代码触发还是用户触发
      $("#btn").trigger("myclick",["自定义","事件"])
      4,执行默认操作
      取消默认操作,$(input).triggerHandler("focus");
      默认会获取焦点,现在只会触发focus事件而不会获取焦点
    八,其他用法
      1,绑定多个事件类型
      bind("mouseover mouseout")
      2,添加事件命名空间,便于管理
      bind("click.plugin",function(){});
      3,相同事件名称,不同命名空间执行方法
      $(function(){
        $("div").bind("click",function(){});
        $("div").bind("click.plugin",function(){});
        $("button").click(function(){$("div").trigger("click!");});
      });
      click!匹配所有不包含命名空间中的click方法

  • 相关阅读:
    iframe,modaldialog父子窗口相互通信的问题
    bootstrap基础知识
    基于原生js的图片延迟加载
    通过原生js的ajax或jquery的ajax获取服务器的时间
    转 fiddler教程
    正则表达式
    es6 对象
    ES6
    axios
    javascript闭包和闭包的几种写法和用法
  • 原文地址:https://www.cnblogs.com/b0xiaoli/p/3675452.html
Copyright © 2011-2022 走看看