2011-01-24 5 views
0

ボタンのイベントは、ページが読み込まれた後に配線されるため、このためにliveを使用する必要があります。

は、このために仕事を生きる:

$('#somebutton').data('events').click; 
+3

'$( '#のsomebutton')が何であるのデータ( 'イベント')'? –

+0

@Rocket、私は['.data()'](http://api.jquery.com/jQuery.data/)関数と思います。 –

+0

@ダーリン:その価値は何ですか? –

答えて

3

あなたが.liveを呼び出すとき$('#somebutton').data('events').clickはすでにそれにクリック機能を持っている場合のみ。それ以外の場合は、null値を渡しています。

つまり、.liveで指定された動作は、ボタンが作成されたときに起動しますが、その時点でそのハンドラへのデータ参照を再評価しません。最初に呼び出されたときに送信された値を使用します。

は、あなたはそれにかかわらず、同じことを行い機能、送信することができます。

$('#somebutton').live('click', function(e) { 
    $(this).data('events').click(e); 
}); 
+1

問題は、@ chaosです。ボタンがDOMに追加されたときに、 ".live()"が**何か**をしていると言ってもそれほど正確ではありません。 – Pointy

+0

Nyergh。さて、 '.live()'関数自体は実際にはその時点では実行されていません。私は、OPのようなすでに明らかに非常に混乱している個人の状況に混乱を加えないだけでなく、より正確な表現を失うことになります。あなたは1つを供給したいですか? – chaos

+0

'' .live' "で指定された動作で試してみましょう。それはどんなに良いですか? (ちなみに、 ".live"はDOMに追加されていないオブジェクトに影響を与えることが判明したため、DOMに追加された言語を削除しました。 – chaos

関連する問題