为什么用focus传递参数获取失败,用click获取成功

来源:7-2 jQuery自定义事件之triggerHandler事件

慕圣2251184

2017-04-01 23:32

代码如下

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>

                 <input type="text">
    <br>
                 <button>focus传参数</button>
    <br>
                 <button>click传参数</button>

<script type="text/javascript">

     $("input").on("focus",function(event,title) {
        alert(title)  //为什么参数传递失败
    });

    $("button:first").click(function(){
         $("input").trigger("focus","focus传参数");
    })
    
    
    
     $("input").on("click",function(event,title) {
        alert(title)
    });

    $("button:last").click(function(){
       $("input").trigger("click","click传参数");
    })
    
    

</script>
</body>

</html>

写回答 关注

4回答

  • JoKer49
    2017-04-07 00:36:58
    已采纳

    因为trigger会触发浏览器的默认行为 即input的聚焦行为,此时是不能将input设置title值的;而triggerHandler不会触发浏览器的默认行为 即input的聚焦行为,此时是可以将input设置title值的。

    就这样。

    qq_寻找_...

    那要怎么改才能显示出来呢?

    2017-06-10 00:12:47

    共 2 条回复 >

  • 小程序魔王
    2018-10-09 08:47:41


    比如用鼠标点击按钮触发click,是原生事件,没办法传递参数,也不需要在点击按钮的瞬间让用户输入参数,
    但是用trigger写条代码触发click就可以传递参数1和参数2,因为顺手一写的事
    $('#elem').trigger('click',['参数1','参数2'])

    trigger除了能够触发浏览器事件(原生事件),同时还支持自定义事件,并且自定义事件还支持传递参数,

    自定义事件支持传递参数,但原生事件(浏览器事件)并不支持相同的形式传递参数,

    $("input").trigger("focus","focus传参数");//在这里触发的是原生事件,不支持传递参数,写了没用,所以title的值为空

    $("input")..triggerHandler("focus","focus传参数");//触发的是自定义事件,支持传递参数,所以title的值为"focus传参数"




    龙跃马

    上一章,button的trigger还传了参数,难道是input不行?

    2018-12-26 23:14:54

    共 2 条回复 >

  • JoKer49
    2017-08-30 11:34:42

    我今天来复习jquery  然后又有点搞不懂这个问题了,,,,结果来这里看到了以前自己写的答案。 赠人玫瑰,手留余香。

    小程序魔王

    你再碰到还是不懂,说明你以前就没搞懂

    2018-10-09 07:50:51

    共 1 条回复 >

  • 慕粉2054305218
    2017-04-02 18:52:45

    因为你用错函数了  这个函数不能传递参数 请用  

    $("input").focus(11111,function(e) {

        alert(e.data)

    });


jQuery基础(三)—事件篇

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

89997 学习 · 625 问题

查看课程

相似问题