Jquery事件绑定


V哥官网:http://www.vgxit.com

本博客对应视频教程:http://www.vgxit.com/course/19


1,Jquery标准绑定事件

对应的语法:

jq对象.事件方法(回调函数);

比如我们用单机事件举例:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var testDiv = $("#testDiv");
                testDiv.click(function () {
                    alert("点击了testDiv");
                });
            });
        </script>
    </head>
    <body>
        <div id="testDiv" style="width: 200px;height: 200px;background: pink;"></div>
    </body>
</html>

我们可以通过参考文档可以发现,我们jquery的事件气势上是很多的。比如,如果我们要绑定两个事件怎么办。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var testDiv = $("#testDiv");
                //鼠标移动到testDiv之上的时候调用的方法
                testDiv.mouseover(function () {
                    testDiv.css("background", "black");
                });
                //鼠标移动到testDiv外面去了之后调用的方法
                testDiv.mouseout(function () {
                    testDiv.css("background", "pink");
                });
            });
        </script>
    </head>
    <body>
        <div id="testDiv" style="width: 200px;height: 200px;background: pink;"></div>
    </body>
</html>

但是上面的写法不是太好,我们可以采用链式编程的方式来简化代码:

testDiv.mouseover(function () {//鼠标移动到testDiv之上的时候调用的方法
    testDiv.css("background", "yellow");
}).mouseout(function () {//鼠标移动到testDiv外面去了之后调用的方法
    testDiv.css("background", "pink");
});

2,Jquery常用绑定事件汇总:

1,hover:悬停事件。传入2个参数,这两个参数都是回调函数。当鼠标移动到对应的元素上的时候,触发第一个函数,当鼠标移除对应的元素的时候,触发第二个函数。这个能够达到的效果和我们上节课讲的mouseover和mouseout比较类似:

$(function () {
                var testDiv = $("#testDiv");
                testDiv.hover(function () {
                    testDiv.css("background", "blue");
                }, function () {
                    testDiv.css("background", "pink");
                });
            });

2,blur:当对应的元素失去焦点的时候触发。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var myInput = $("#myInput");
                myInput.blur(function () {
                    alert("我失去焦点了");
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="myInput"/>
    </body>
</html>

3,change:当元素的值发生改变的时候触发。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var myInput = $("#myInput");
                myInput.change(function () {
                    alert("值改变了");
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="myInput"/>
    </body>
</html>

4,dbclick:当鼠标在元素上双击的时候触发。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var testDiv = $("#testDiv");
                testDiv.dblclick(function () {
                    alert("我被双击了");
                });
            });
        </script>
    </head>
    <body>
        <div id="testDiv" style="width: 200px;height: 200px;background: pink;"></div>
    </body>
</html>

5,focus:当文本框获取到焦点的时候触发:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var myInput = $("#myInput");
                myInput.focus(function () {
                    console.log("我获取到了焦点了");
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="myInput"/>
    </body>
</html>

6,keydown:按下键盘的时候触发。它发生在当前获得焦点的元素上:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var myInput = $("#myInput");
                myInput.keydown(function (event) {
                    console.log("我按下了键盘" + event.keyCode);
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="myInput"/>
    </body>
</html>

7,keypress:keypress 事件与 keydown 事件类似。当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。 不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var myInput = $("#myInput");
                myInput.keypress(function (event) {
                    console.log("我按下了键盘" + event.keyCode);
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="myInput"/>
    </body>
</html>

8,mousedown事件:当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。mousedown 与 click 事件不同,mousedown 事件仅需要按键被按下,而不需要松开即可发生。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#mydiv").mousedown(function () {
                    alert(123);
                });
            });
        </script>
    </head>
    <body>
        <div id="mydiv" style="background: pink; width: 200px; height: 200px;"></div>
    </body>
</html>

9,mousup事件:当在元素上放松鼠标按钮时,会发生 mouseup 事件。

10,submit事件:当提交表单的时候触发的事件。同样submit也可以用来通过js提交表单。


3,on/off绑定和解除事件

jq对象.on("事件名称", 回调函数)

jq对象.off("事件名称")

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>简单绑定单机事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#mydiv").on("click", function () {
                    alert(123);
                });
                $("#mydiv").off("click");
            });
        </script>
    </head>
    <body>
        <div id="mydiv" style="background: pink; width: 200px; height: 200px;"></div>
    </body>
</html>