一般的浏览器事件(如点击)支持自定义事件,传递参数吗?

来源:7-1 jQuery自定义事件之trigger事件

_十年

2016-09-18 13:15

trigger除了能够触发浏览器事件,同时还支持自定义事件, 

那么一般的浏览器事件(如点击)支持自定义事件 传递参数吗

写回答 关注

3回答

  • GavinZeng
    2016-10-25 12:01:31

    trigger()传递的参数和一般的浏览器事件传递的参数在实质上完全不同

    一般浏览器事件传递参数的形式:

    function dome(event,args){ //参数args在这段代码中没有被使用
        alert(event.data.name); //将匿名对象的name属性传递给了事件对象的data对象
        alert(args); //因为没有传递该参数,窗口输出:undefined
    }
    $("div").on("click",{name:"使用event.data传递的参数:imooc"},dome); //div点击时触发

    这里的参数{name:"imooc"},传递给了on事件本身(event)的data对象。

    trigger()传递的参数的形式:(在上面的代码基础上增加如下代码)

    function dome2(){
        $("div").trigger("click","使用trigger传递的参数:imooc"); //传递参数【使用trigger传递的参数:imooc】
    }
    dome2(); //弹出2次窗口,第一次是事件对象的data,第二次是trigger传递的参数【使用trigger传递的参数:imooc】

    这里的【使用trigger传递的参数:imooc】是传递给形参args的参数

    总结:

    1. 一般浏览器事件传参,参数是传递给了事件对象的data对象;

    2. trigger传参,参数是传递给事件调用函数的形参;

  • 慕粉1462636306
    2016-09-18 14:07:24

    JQuery中on基本用法:.on( events [, selector ] [, data ] ),event可以为click,mouseover,mouseout,mousedown,mouseup等事件;

    <body>

        <h4>测试三</h4>

        <div class="right">

            点击触发:on(mousedown:fn1,mouseup:fn2)

            <div id="test3"></div>

        </div>

        <script type="text/javascript">

        //多事件绑定二

        $("#test3").on({

            mousedown: function(e) {

                $(this).text('触发事件:' + e.type)

            },

            mouseup: function(e) {

                $(this).text('触发事件:' + e.type)

            }

        })

        </script>

    </body>


  • 慕粉1462636306
    2016-09-18 13:49:05

    on也支持自定义事件传递参数

    _十年

    能举个例子吗,贴点代码

    2016-09-18 13:51:25

    共 1 条回复 >

jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题