如何判斷元素上是否已經註冊指定型別事件處理函式

admin發表於2017-04-01

本章節介紹一下如何判斷指定的元素是否註冊了指定型別的事件處理函式。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
  $("#bt").click(function(){
    //code
  })
  var $events =$._data($("#bt")[0], "events");
  if($events&&$events["click"]){
    $("#show").text("已經註冊click事件處理函式");
  }
});
</script>
</head>
<body>
<input type="button" id="bt" value="檢視效果"/>
<div id="show"></div>
</body>
</html>

上面的程式碼實現了我們的要求,使用$._data()方法即可實現。

特別說明:

$._data()方法通常是jquery庫內部呼叫。

在1.8版本以前可以使用obj.data('event')實現,但是現在已經取消。

相關文章