zoukankan      html  css  js  c++  java
  • jQuery带参数的事件绑定

    jQuery在绑定事件的时候我们前面已经实现过了,看看是如何实现的

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <button id="btn1">test1</button>
    <script src="jquery-3.3.1.js"></script>
    <script>
    $("#btn1").click(function(){
        alert('button1')
    })
    </script>
    </body>
    </html>

    在上面的实例中我们对按钮绑定了一个事件,但这个事件是在绑定的时候自己定义的,可是如果我们先定义一个函数那怎么绑定呢?

    绑定已有的函数

    我们可以事先定义一个函数,然后把和指定的事件进行绑定

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <button id="btn1">test1</button>
    <script src="jquery-3.3.1.js"></script>
    <script>
    function printdata(){
        alert(12345)
    }
    $("#btn1").click(printdata)
    </script>
    </body>
    </html>

    注意,我们在绑定的时候只声明了函数的函数名,并没有参数的传递。可是如果要有参数的传递该怎么办呢?

    带参数的函数绑定

    其实,在上面我们和事件绑定的参数其实是有一个参数的(event),我们可以查看一下(只放JS代码)

    function printdata(){
        console.log(event)
    }
    $("#btn1").click(printdata)

    在按钮被按下的时候可以看一看打印的数据

    可以看出来,这个event是个obj类型的数据,那么我们就可以在这个event里加上我们需要传递的参数

    function printdata(event){
        console.log(event)
    alert(event.data.data)
    }
    $("#btn1").click({'data':'button1'},printdata)

    这样,就实现了和上面一样的效果。

    这里有两个要注意的地方:

    1.形参event必须显性的指定

    2.event.data.data中第一个data指的是参数中的数据是不能换的,而第二个data是我们在传参的时候,参数是以键值对的方式来传递的,这个data就是键值对里的键值。

    3.绑定的时候,一定要先写传的参数,在写函数名,不能颠倒。

    所以,如果有多个按钮需要绑定这个函数时,就可以直接绑定了

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <button id="btn1">test1</button>
        <button id="btn2">test2</button>
    <script src="jquery-3.3.1.js"></script>
    <script>
    function printdata(event){
        console.log(event)
    alert(event.data.data)
    }
    $("#btn1").click({'data':'button1'},printdata)
    $('#btn2').click({'data':'button2'},printdata)
    </script>
    </body>
    </html>
  • 相关阅读:
    struts2基础---->自定义拦截器
    struts2基础---->第一个Struts2程序
    Vue基础---->vue-router的使用(一)
    java框架---->zxing框架的使用
    java基础---->java输入输出流
    java基础----->TCP和UDP套接字编程
    JS基础---->js中ajax的使用
    tomcat源码---->request的请求参数分析
    Android Http请求方法汇总
    Android如何通过shareduserid获取系统权限
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/13062737.html
Copyright © 2011-2022 走看看