2016-11-13 2 views
1

なしjquery.live機能を実行するための方法は、のjQueryのライブ機能がイベント APIドキュメントでトリガーされたすべてのイベント

$(".xyz").live('event', function(){ 
    }); 


http://api.jquery.com/live/

は、私は上記の機能を実行したいここに存在しているありますイベントなしで、つまりクラスxyzが動的に作成されるとすぐに実行されます。

私は

$(".xyz").live(function(){ 
    }); 

イベントパラメータなしでこれを試してみましたが、それは動作しません!

追加

+0

'live()'は何年も前に廃止され、jQueryから削除されましたが、イベントなしでイベントを委譲する方法はありません。 – adeneo

+0

これは、あなたがhttps://bocoup.com/weblog/publishsubscribe-with-jquery-custom-events – Deep

+0

のように使うのを助けることができますか?その理由を伝えることができますか? – prasanth

答えて

0

私はあなたがしたいことを正確にはわかりませんが、私は仮定します。

シナリオ1

jQueryの内部機能を実行するために、あなたはそれ以外の場合は知ることができない、機能を実行するときにjQueryを伝える必要があります。これを実行する1つの方法は次のとおりです。その関数内

$(document).ready(function() { 
    $('.xyz').css('color', 'red'); 
    // more code, anything, functions, calculations, etc. 
}); 

コードは、すぐに実行されます、あなたのDOMの準備ができて(操作しても安全です)。 ready()イベントの外にも$('.xyz').css('color', 'red');を入れて実行することもできます。今回の「イベント」は、ページの実行がそのコード行に達したときです。たとえば、HTMLの前にこの行を置くと、その行が動作するという保証はありません。

シナリオ2からonClassChangeイベント

あなたは、イベントを探しているならonClassChangeのようなものをと呼ばれる、それはjQueryの上で終了していません。その問題へのアプローチは、この可能性:

  • は、各実行で無限に
  • 走るタイマーを作成し、そのオブジェクトが自分のクラス($(obj).hasClass('xyz')
  • そうであれば、あなたがやりたいものは何でもを持っているかどうかを確認しますあなたはクラスxyzが動的に作成されたので、またif()

の内側に、あなたはあなたのコードの中で、あなたのクラスを作成した直後に、あなたの関数を実行しようとすることができます。

詳細については、onClassChangeのイベントについては、このサイトで確認することができます長い議論があります。

+0

精巧な答えをありがとう、私は本当に感謝します。 –

関連する問題