live( eventType, fn )

jQuery API の live( eventType, fn ) は、1つ目の引数に指定したイベントに、2つ目の引数に指定したイベントハンドラをバインドすることができるメソッド。bind( eventType, fn ) と似ているが、現在ある要素だけでなく、将来生成する要素に対しても適用する点が異なる。

jQuery Version 1.7」の時点で非推奨になった。
「jQuery Version 1.9」で廃止された。

記述方法

jQuery( セレクター ) . live( イベントタイプ, イベントハンドラ );

「セレクター」の要素の「イベントタイプ」のイベントに、「イベントハンドラ」をバインド。

実装例(サンプル)

  1. リストアイテム

実装例(サンプル)の動作について

  • 「live」のラジオボタンを選択して、リストアイテムをクリックすると、新しいリストアイテムを生成する。新しく生成したリストアイテムをクリックしても、新しいリストアイテムを生成する。
  • 「die」のラジオボタンを選択すると、リストアイテムをクリックしても、新しいリストアイテムを生成しない。
  • 「bind」のラジオボタンを選択すると、現在あるリストアイテムをクリックすると、新しいリストアイテムを生成するが、新しく生成したリストアイテムをクリックしても、新しいリストアイテムを生成しない。

実装例(サンプル)のソースコード

JavaScript

<script>
<!--
jQuery( function() {
    function jqueryApiAfter() {
        jQuery( this ) . after( '<li class="jquery-api-after">リストアイテム</li>' );
    }
    jQuery( '#jquery-api-live' ) . click( function () {
        jQuery( '.jquery-api-after' ) . unbind( 'click', jqueryApiAfter );
        jQuery( '.jquery-api-after' ) . die( 'click', jqueryApiAfter );
        jQuery( '.jquery-api-after' ) . live( 'click', jqueryApiAfter );
    } ) . click();
    jQuery( '#jquery-api-die' ) . click( function () {
        jQuery( '.jquery-api-after' ) . unbind( 'click', jqueryApiAfter );
        jQuery( '.jquery-api-after' ) . die( 'click', jqueryApiAfter );
    } );
    jQuery( '#jquery-api-bind' ) . click( function () {
        jQuery( '.jquery-api-after' ) . die( 'click', jqueryApiAfter );
        jQuery( '.jquery-api-after' ) . bind( 'click', jqueryApiAfter );
    } );
} );
// -->
</script>

CSS

<style>
<!--
#jquery-api-radio label {
    margin: 0 10px 0 0;
    font-size: 16px;
    color: black;
    cursor: pointer;
}
#jquery-api-radio input {
    margin: 0;
}
.jquery-api-after {
    cursor: pointer;
}
-->
</style>

HTML

<div id="jquery-api-radio">
    <p>
        <label for="jquery-api-live">
            <input type="radio" id="jquery-api-live" name="jquery-api-radio"> live
        </label>
        <label for="jquery-api-die">
            <input type="radio" id="jquery-api-die" name="jquery-api-radio"> die
        </label>
        <label for="jquery-api-bind">
            <input type="radio" id="jquery-api-bind" name="jquery-api-radio"> bind
        </label>
    </p>
</div>
<ol>
    <li class="jquery-api-after">リストアイテム</li>
</ol>

スポンサード リンク

カテゴリー: API, JavaScript, jQuery, イベント, イベントハンドラ・アタッチメント タグ: , , パーマリンク