1

変更イベントでセレクタ値を取得するには?

私はこれを試しました:

    $("#frek_menonton_tv :input").change(function(){
        $(this).selector;
    });

空の文字列を返します。

望ましい結果:

frek_menonton_tv :inputではないObject

4

3 に答える 3

2

.selectorあなたが探している、バージョン1.7から廃止されました

リファレンスを参照

.selector プロパティは jQuery 1.7 で廃止され、jQuery Migrate プラグインで .live() をサポートするために必要な範囲でのみ維持されます。将来のバージョンでは予告なく削除される可能性があります。後続のトラバーサル メソッドがセットを変更した可能性があるため、プロパティは、プロパティである jQuery セットに現在含まれている要素のセットを取得するために使用できるセレクターの信頼できる指標ではありませんでした。セレクターを使用する必要があるプラグインでは、初期化中にプラグインの引数の一部としてセレクターに呼び出し元を渡す必要があります。

次のようにセレクターを取得できるため:

   var obj = $("#frek_menonton_tv :input");
    alert(obj.selector);

したがって、ハックを実行してイベント バインディングを別の関数にラップし、それをすべてのイベント バインディングに使用できます。オーバーロード for を使用してバインド中にコントロールにバインドされたイベントに任意のデータを追加できるように.on()、サブスクライブ関数内のコンテキストからセレクターを使用し、それをイベント データにバインドします。

.on( イベント [, セレクター] [, データ], ハンドラー(イベントオブジェクト) )

$.fn.subscribeEvent = function(eventType, callBack) {
    this.on(eventType, {'selector': this.selector}, callBack);
   //Older versions of jquery you can use bind
   //this.bind(eventType, {'selector': this.selector}, callBack);

};

$(function() {

   $("#frek_menonton_tv :input").subscribeEvent('change', function(e){
      alert(e.data.selector);
   });

});

デモ

于 2013-06-06T03:53:11.690 に答える
1

$(this)のインスタンスを提供しますinput

 $("#frek_menonton_tv :input").change(function(){
        console.log($(this));
    });  
于 2013-06-06T03:46:01.973 に答える