jQuery之event

  今天了解了一下jQuery中的事件event,使用jQuery好处就是不用去考虑那么多的兼容。

  鼠标事件:click dblclick mousedown mouseup mouseenter mouseleave mouseover  mouseout

  鼠标事件最常用的就是上述几个了。关于click mousedown  mouseup  如果将这三个事件绑定在同一个元素上,那么触发的顺序将是 mousedown  mouseup  click 。然后再来看看mouseleave和mouseout这两个事件,乍一看怎么没什么区别呢!看看这篇文章,就知道了。mouseenter和mouseover也是同样的道理。

  focus focusin focusout blur change  submit

  这几个个事件一般用在表单元素上,用法没什么好说的,讲一下blur和change事件的区别,blur就是在失去焦点时触发,而change则要在内容改变且失去焦点时触发。focus事件是不会冒泡的。例:

  

    <form action="a.php" method="post">
            <input type="text" />
            <input type="submit" value="提交"/>            
        </form>
    $("form").on("focus",function(){
      alert("focus");
    })

  此时在点击进入输入框时,是不会弹出警告框的,如果要实现则要使用focusin这个事件。

  keypress  keydown  keyup

  这三个是键盘事件。当浏览器捕获一个元素上键盘输入时,keypress就会发送个元素。这是类似keydown事件,除了当按键被一直按下(即连续插入字符的场合)时的处理。如果用户按下并按住这个键(不松开释放)的时候,keydown事件只触发一次,但是keypress会在每个字符插入的时候都会触发事件。此外,组合键(如Shift)会触发keydown事件,但不会触发keypress事件。

  keypress事件处理程序可以附加到任何元素,但该事件只是发送到具有焦点的元素上。不同的浏览器中,可获得焦点的元素略有不同,但是表单元素总是能获取焦点,所以对于此事件类型表单元素是最合适的。  

  如果需要任何按键被捕获(例如,要实现网页全局上的快捷键),那么把这个事件附加到document对象上是非常有用的。所有的按键事件都会沿着各自的 DOM 树冒泡到 document 对象上,除非明确停止。

  要确定哪个键被按下,我们可以检测传递给处理函数的event 对象。而浏览器使用不同的属性来存储这些信息,jQuery的规范了.which属性,以便我们能够可靠地使用它来检索关键代码。

  值得注意的是keydown 和 keyup提供一个代码,表示哪一个键被按下,而keypress表示被输入哪个字符。例如,按下了小写的 "a",在 keydownkeyup 中,对应该键的代码是 65,但是对于 keypress 而言,接收到的代码是 97。如果是大写 "A" 的话,则所有的相关事件接收到的代码都是 65。由于这个区别,若想捕获敲击了哪个特殊键的话,例如,方向键,使用 .keydown().keyup() 更好。

  

  OK,常用的就这几种了。

  还有一个trigger函数,模拟触发事件。

  

         $("#test").on("click",function(){
                    alert(1);
                    
                })
                
                $("#test").trigger("click");

  用户不用点击,就会自动触发点击事件。

  最后附上jQuery的中文版链接:http://www.jquery123.com/

  

原文地址:https://www.cnblogs.com/djlxs/p/5161811.html