為什么用focus傳遞參數獲取失敗,用click獲取成功
代碼如下
<!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>
2017-04-07
因為trigger會觸發瀏覽器的默認行為 即input的聚焦行為,此時是不能將input設置title值的;而triggerHandler不會觸發瀏覽器的默認行為 即input的聚焦行為,此時是可以將input設置title值的。
就這樣。
2018-10-09
trigger除了能夠觸發瀏覽器事件(原生事件),同時還支持自定義事件,并且自定義事件還支持傳遞參數,
自定義事件支持傳遞參數,但原生事件(瀏覽器事件)并不支持相同的形式傳遞參數,
$("input").trigger("focus","focus傳參數");//在這里觸發的是原生事件,不支持傳遞參數,寫了沒用,所以title的值為空
$("input")..triggerHandler("focus","focus傳參數");//觸發的是自定義事件,支持傳遞參數,所以title的值為"focus傳參數"
2017-08-30
我今天來復習jquery ?然后又有點搞不懂這個問題了,,,,結果來這里看到了以前自己寫的答案。 贈人玫瑰,手留余香。
2017-04-02
因為你用錯函數了 ?這個函數不能傳遞參數 請用 ?
$("input").focus(11111,function(e) {
? ? alert(e.data)
});