jQuery trigger()

admin發表於2017-02-24

此方法可以觸發匹配元素上指定型別的事件。

語法結構一:

[JavaScript] 純文字檢視 複製程式碼
.trigger(eventType [, extraParameters ])

引數解析:

(1).eventType:JavaScript事件型別的字串,比如"click"或"submit"。

(2).extraParameters:可選,傳遞給事件處理程式的額外引數,傳遞多個引數需要通過陣列形式。

jQuery1.0版本新增。

語法結構二:

[JavaScript] 純文字檢視 複製程式碼
.trigger(event [, extraParameters ])

引數解析:

(1).event:jQuery事件物件。

(2).extraParameters:可選,傳遞給事件處理程式的額外引數,傳遞多個引數需要通過陣列形式。

jQuery1.3版本新增。

特別說明:jQuery1.6.2開始,如果傳遞一個引數,可以不使用陣列形式。

jQuery1.3開始,trigger()有冒泡效果,事件函式中返回false或呼叫stopPropagation()方法可以阻止冒泡。

程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input:text").select(function(){
    $(this).css("color","red");
  });
  $("#bt").click(function(){
    $("input:text").trigger("select");
  });
});
</script>
</head>
<body>
<input type="text" value="softwhy.com"/>
<input type="button" id="bt" value="檢視效果"/>
</body>
</html>

文字框註冊select事件處理函式;點選按鈕會呼叫trigger()會觸發select事件。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script>
$(document).ready(function(){
  $("a").click(function(ev){
    var str="";
    for(var index=0;index<arguments.length;index++){
      str=str+arguments[index]+"<br/>";
    }
    $("#show").html(str);
  })
  $("a").trigger("click",["螞蟻部落","softwhy.com"]);
})
</script>
</head>
<body>
<a href="#">螞蟻部落</a>
<div id="show"></div>
</body>
</html>

為trigger()方法傳遞除了第一個事件型別引數之外的其他額外引數,這些額外引數會作為事件處理函式的引數(事件物件永遠是事件處理函式的第一個引數,即便沒有傳遞事件物件),如果要傳遞多個額外的引數,需要使用陣列形式。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script>
$(document).ready(function(){
  var num=0;
  $("a").click(function(ev,arg){
    num=num+1;
    $("#show").html(num);
    if(arg){
      $("a").trigger(ev);
    }
  })
  $("a").trigger("click","softwhy.com");
})
</script>
</head>
<body>
<a href="#">螞蟻部落</a>
<div id="show"></div>
</body>
</html>

trigger()引數為jQuery事件物件也可以觸發事件。

相關文章