为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

正在回答

3 回答

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传参,参数是传递给事件调用函数的形参;

1 回复 有任何疑惑可以回复我~

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>


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

_十年 提问者

能举个例子吗,贴点代码
2016-09-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信