Jquery onを使ってイベントをbindしたイベントを削除する
Jqueryでonメソッドを使ってイベントをbind(バインド)したイベントをoffメソッドを利用して削除するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
※windows10にApacheのインストールはこちら
offメソッド利用
指定した要素にクリックイベントをバインドしたのちに、そのイベントをoffメソッドで削除します。
ここでは要素をクリックして、文字の色を変更させるクリックイベントを作成して、削除してます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>mebeeサンプル</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet" href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css" integrity="sha384-wXznGJNEXNG1NFsbm0ugrLFMQPWswR3lds2VeinahP8N0zJw9VWSopbjv2x7WCvX" crossorigin="anonymous">
<script src="http://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<style>
.container {
margin: 0 auto;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
font-size: 50px;
}
</style>
<script>
$(function(){
//クリックイベントをバインド
$('#test').on("click", function(){
//赤なら黒に変更
if($("#test").css("color")=="red" || $("#test").css("color")=="rgb(255, 0, 0)" || $("#test").css("color")=="rgb(255,0,0)" || $("#test").css("color")=="#FF0000"){
$("#test").css("color","black");
}
else{
$("#test").css("color","red");
}
});
$('#btn').click(function(){
//バインドしたクリックイベントを削除する
$('#test').off("click");
});
});
</script>
<body>
<div class="container">
<div id="test">click me</div>
<div>
<button type="button" id="btn" class="btn btn-raised btn-warning">イベント削除</button>
</div>
</div>
</body>
</html>
要素をクリックすると文字色が変更されて、削除したあとはクリックしてもバインドが削除されているので変化しません。
-
前の記事
javascript jsonデータをXMLHttpRequestを使って取得する 2020.10.25
-
次の記事
C# 文字列に変更にする 2020.10.25
コメントを書く