.live() 非推奨 1.9 削除
マッチした要素に任意のイベントをバインドします。また、対象となるエレメントは現在マッチしているものも含め、将来的にマッチするものも対象となります。
- .live( eventType, handler(eventObject) ) 1.3追加
- .live( eventType, eventData, handler(eventObject) ) 1.4追加
- .live( events ) 1.4.3追加
- サンプル
- デモ
バージョン1.7で登場した.on()メソッドによって、これ移行のバージョンでは.live()メソッドは不要となります。 .live()は、jQuery1.7より前のバージョンでのみ使用するのが良いでしょう。
// jQuery 1.4.3+
$(elements).live(selector, events, data, handler);
// jQuery 1.7+
$(elements).on(events, selector, data, handler);
.live()メソッドはイベント伝搬をキャンセルすることは出来ませんが、 .live()メソッドは「event.stopPropagation() 」かfalseを返すことで イベント伝搬をキャンセルすることが出来ます。(?)
.live( eventType, handler(eventObject) ) 1.3追加
戻り値:jQuery
マッチした要素に任意のイベントをバインドします。また、対象となるエレメントは現在マッチしているものも含め、将来的にマッチするものも対象となります。
引数 | 説明 |
---|---|
eventType |
"click"や"submit"などのDOMイベント名、任意に定義したカスタムイベント名の文字列を指定します。 また、スペース区切りで複数のイベントを指定することも可能です。 |
handler(eventObject) | 対象のイベントが発生した際に、実行したい処理を関数として指定します。 |
$("table").live("td", "click", function() {
//Table内のTDがクリックされた際に、TDの"chosen"クラスを切り替えます。
$(this).toggleClass("chosen");
});
.on()メソッドを使って同じ処理を次のように書くことが出来ます。
$("table").on("click", "td", function() {
$(this).toggleClass("chosen");
});
.live( eventType, eventData, handler(eventObject) ) 1.4追加
戻り値:jQuery
マッチした要素に任意のイベントをバインドします。また、対象となるエレメントは現在マッチしているものも含め、将来的にマッチするものも対象となります。
引数 | 説明 |
---|---|
eventType |
"click"や"submit"などのDOMイベント名、任意に定義したカスタムイベント名の文字列を指定します。 また、スペース区切りで複数のイベントを指定することも可能です。 |
[eventData] | マップ値を指定することで、データをイベントハンドラーに渡すことが出来ます。 |
preventBubble | 初期値はtrue。この3番目の引数にfalseを設定すると、本来実行されるDOMイベントが実行されなくなり、 またイベントの伝搬もブロックされます。 |
.live( events ) 1.4.3追加
戻り値:jQuery
マッチした要素に任意のイベントをバインドします。また、対象となるエレメントは現在マッチしているものも含め、将来的にマッチするものも対象となります。
引数 | 説明 |
---|---|
events | マップ値でイベント名と関数をして、それぞれのイベント発生時に実行したい処理を指定します。 |
サンプル
//全P要素をクリックすると、そのテキスト内容をアラート表示します。
$("body").live("p", "click", function(){
alert( $(this).text() );
});
//全A要素のクリックイベントとそのイベント伝播をキャンセルします。
$("body").live("a", "click", function() { return false; });
//全A要素のクリックイベントのイベント伝搬のみをキャンセルします。
$("body").live("a", "click", function(event){
event.preventDefault();
});
デモ
P要素にクリック時のイベントハンドラを登録しています。 また、.bind()とは違い新しく生成されたP要素にもクリックイベントハンドラが登録されます。
<!DOCTYPE html>
<html>
<head>
<style>
p { background:yellow; font-weight:bold; cursor:pointer;
padding:2px; margin:5px; font-size:10px;}
p.over { background: #ccc; }
span { color:red; }
</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<p>クリックしてください!</p>
<span></span>
<script>
$("p").live("click", function(){
$(this).after("<p>新しく生成されたこちらのP要素もクリックしてください!</p>");
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
p { color:red; }
span { color:blue; }
</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<p>Has an attached custom event.</p>
<button>Trigger custom event</button>
<span style="display:none;"></span>
<script>
$("p").live("myCustomEvent", function(e, myName, myValue){
$(this).text("Hi there!");
$("span").stop().css("opacity", 1)
.text("myName = " + myName)
.fadeIn(30).fadeOut(1000);
});
$("button").click(function () {
$("p").trigger("myCustomEvent");
});
</script>
</body>
</html>
© 2010 - 2017 STUDIO KINGDOM