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

改了val()的参数,为什么点击第一个按钮,参数不显示,点第二个显示

//给input绑定一个聚焦事件

    $("input").on("focus",function(event,titie) {

        $(this).val(titie)

    });



    //trigger触发focus

    $("button:first").click(function() {

        $("input").trigger("focus",'触发默认事件');

    });


     //triggerHandler触发focus

    $("button:last").click(function() {

        $("input").triggerHandler("focus",'没有触发默认事件');

    });


正在回答

2 回答

因为第一个按钮绑定的是tigger(),会触发浏览器的默认事件focus()事件。你on("focus",function(event,titie))没有给titie传入值当然不会显示了。

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

慕柯

还是不明白,那怎样点击第一个按钮才会显示 '触发默认事件' 这几个字?
2016-08-29 回复 有任何疑惑可以回复我~
#2

Feair 回复 慕柯

你看之前的,trigger()如何将其first/last传值给bottonName的,你可以仿着写一个
2016-09-11 回复 有任何疑惑可以回复我~
#3

_十年

那为什么将focus换成click,titie就传入值了?
2016-09-18 回复 有任何疑惑可以回复我~

7-1,也就是上一小节,最后一句话是“自定义事件可以传递参数”,那意思就是默认的浏览器事件不能传递参数。$("input").trigger("focus",'触发默认事件'); 这句话里“触发默认事件”就没法被传递过去(但是triggerHandler函数可以传递参数)。

$("input").on("focus",function(event,titie) {

        $(this).val(titie)

    });

没有参数的话,title就是空值,因此最后input文本框就没法显示了。另外,可以像上一小节一样,加上这样一句话:title = title || "实在不行就显示我吧"

那么,即使调用trigger函数也能显示出刚才加的这行文字了

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

举报

0/150
提交
取消

改了val()的参数,为什么点击第一个按钮,参数不显示,点第二个显示

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