改了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",'沒有觸發默認事件');
? ? });
2016-08-12
因為第一個按鈕綁定的是tigger(),會觸發瀏覽器的默認事件focus()事件。你on("focus",function(event,titie))沒有給titie傳入值當然不會顯示了。
2016-12-05
7-1,也就是上一小節,最后一句話是“自定義事件可以傳遞參數”,那意思就是默認的瀏覽器事件不能傳遞參數。$("input").trigger("focus",'觸發默認事件'); 這句話里“觸發默認事件”就沒法被傳遞過去(但是triggerHandler函數可以傳遞參數)。
$("input").on("focus",function(event,titie) {
? ? ? ? $(this).val(titie)
? ? });
沒有參數的話,title就是空值,因此最后input文本框就沒法顯示了。另外,可以像上一小節一樣,加上這樣一句話:title = title || "實在不行就顯示我吧"
那么,即使調用trigger函數也能顯示出剛才加的這行文字了