dieメソッドは、liveメソッドによって設定されたイベントを削除することができます。
その前のdie("change")の必要性が分からない状態です。
他の箇所でもliveメソッドを使用して同じイベントに処理を設定していた場合、その処理も含めて実行されてしまいます。それを回避するためにdieメソッドを利用して他の箇所で設定された処理を実行されないようにしているのだと思います。
dieメソッドを使わない場合
HTML
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="UTF-8">
5 <style type="text/css">
6 * {
7 margin: 0;
8 padding: 0;
9 }
10 </style>
11</head>
12<body>
13<form>
14 <input type="text" placeholder="text" id="hogehoge">
15 <input type="button" id="button1" value="クリック">
16</form>
17<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
18<script>
19 var changeflg = false;
20 $("#hogehoge").live("change", function () {
21 alert("hogehoge");
22 });
23 $("#hogehoge").live("change", function () {
24 changeflg = true;
25 });
26 $("#button1").click(function () {
27 alert(changeflg);
28 });
29</script>
30</body>
31</html>
dieメソッドを使った場合
HTML
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="UTF-8">
5 <style type="text/css">
6 * {
7 margin: 0;
8 padding: 0;
9 }
10 </style>
11</head>
12<body>
13<form>
14 <input type="text" placeholder="text" id="hogehoge">
15 <input type="button" id="button1" value="クリック">
16</form>
17<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
18<script>
19 var changeflg = false;
20 $("#hogehoge").live("change", function () {
21 alert("hogehoge");
22 });
23 $("#hogehoge").die("change");
24 $("#hogehoge").live("change", function () {
25 changeflg = true;
26 });
27 $("#button1").click(function () {
28 alert(changeflg);
29 });
30</script>
31</body>
32</html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/26 01:43 編集