one(type, [data], fn)


version 1.1 以降

解説

マッチした要素に、1度だけ実行されるイベントハンドラをバインドします。 1度だけ実行されるということ以外は、bind(type, [data], fn)と同じです。詳細は、bind(type, [data], fn)を参照してください。

引数

  • type
    String: バインドするイベントを表す文字列。標準では以下のイベントが定義されています。

    "blur", "focus", "load", "resize", "scroll", "unload", "click", "dblclick", "mousedown", "mouseup", "mousemove", "mouseover", "mouseout", "mouseenter", "mouseleave", "change", "select", "submit", "keydown", "keypress", "keyup", "error"

    上記の他にも、ユーザ定義のカスタムイベントをバインドすることができます。

    また、イベント種別文字列をスペースで区切り指定することによって、複数のイベントに同じイベントハンドラを一度に指定することができます。
    $("p").bind("click dblclick", function(event){
        // click イベントと、dblclick イベントに同じイベントハンドラを設定
    });
    

  • [data]オプション
    Object: イベントハンドラに渡すデータ。イベントオブジェクトdataプロパティで参照。
  • fn
    Function: バインドするイベントハンドラ関数。この関数には2つの引数が渡されます。
    引数 説明
    event イベントオブジェクト。バインド時に渡されたデータは、dataプロパティで参照。
    triggerData イベント実行時に渡されたデータ。

戻り値

  • jQuery: jQueryオブジェクト

関連


例1:文字列をクリックすると、1回限りアニメーションします。

$("li").one(    // 1回限り有効なイベント
    "click",
    function(){
        $(this).animate({fontSize: "2em"}, "slow", function() {
            $(this).animate({fontSize: "1em"}, "slow", function(){
                $(this).css("background-color", "#c0c0c0").append("  <--実行済み");
             });
        });
    }
);

例1

  • jQuery
  • prototype.js
  • Ext
  • script.aculo.us
  • YUI