欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jquery绑定事件和入口函数

程序员文章站 2023-12-30 19:42:10
...

绑定事件和入口函数

V哥教育QQ群:673215016

官网:V个学IT官网


1,绑定单机事件:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Jquery绑定事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    </head>
    <body>
        <button type="button" id="btn1">点击我</button>
    </body>
    <script type="text/javascript">
        var btn1 = $("#btn1");
        //调用client方法绑定一个事件
        btn1.click(function () {
            alert("click button #btn1");
        });
    </script>
</html>

我们上面仅仅是绑定了一个单机按钮的事件,对于其他的事件,我们也是用同样的思路来解决,这个之后会慢慢的讲到


2,入口函数:
比如说我们上面的代码,如果我们把具体的业务逻辑放到header里面,是不是就有问题了?因为我们的js的执行是从上往下执行的:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Jquery绑定事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            var btn1 = $("#btn1");
            //调用client方法绑定一个事件
            btn1.click(function () {
                alert("click button #btn1");
            });
        </script>
    </head>
    <body>
        <button type="button" id="btn1">点击我</button>
    </body>
</html>

这个时候,我们点击按钮,不会出现任何的效果。这个是因为,我们再绑定事件的时候,要获取到id为btn1的这个元素,而这个元素是在body里面定义的,是在下面定义的。这个时候我们应该怎么办。我们写过原生的js我们知道可以使用 window.onload = function(){…}来解决:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Jquery绑定事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            window.onload = function () {
                var btn1 = $("#btn1");
                //调用client方法绑定一个事件
                btn1.click(function () {
                    alert("click button #btn1");
                });
            };
        </script>
    </head>
    <body>
        <button type="button" id="btn1">点击我</button>
    </body>
</html>

但是在jquery中海油一种更加简单的方式,如下:

Jquery绑定事件 点击我

用以上的方式,我们传入的具体的执行业务的函数会在dom加载完成之后再来运行,这个时候,我们就可以正常的获取到btn1了。

但是window.onload和 ( f u n c t i o n ( ) ) 写 法 是 由 区 别 的 : w i n d o w . o n l o a d 只 能 定 义 一 次 , 但 是 我 们 的 (function())写法是由区别的:window.onload只能定义一次,但是我们的 (function())window.onload(function())可以定义多次。如果我们的window.onload定义多次,那么下面定义的会把上面定义的覆盖掉。比如我们看如下效果:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Jquery绑定事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            window.onload = function () {
                alert("123");
            };
            window.onload = function () {
                alert("456");
            }
        </script>
    </head>
    <body>
        <button type="button" id="btn1">点击我</button>
    </body>
</html>

这个时候页面上只弹出了456,而上面的123没有弹出,这个就说明下面定义的会把上面定义的覆盖掉。

但是如果我们使用Jquery的方式,我们可以看到每次定义的都生效了:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Jquery绑定事件</title>
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript">
            $(function () {
                alert("123");
            });
            $(function () {
                alert("456");
            });
        </script>
    </head>
    <body>
        <button type="button" id="btn1">点击我</button>
    </body>
</html>

上一篇:

下一篇: