2011-12-27 11 views
0

後、私は.LOADといくつかの問題を持っている:jQueryの再集合関数は、AJAX呼び出し

私のサイトには、ボタンを切り替えるためのコード行を使用します。

$('.button').click(function(){ 
// my button function 
}); 

私はいくつかの小さなAJAX呼び出しを記述しましたリロードなしでDIVをロードしますが、ボタンのアクションが設定されていない:これは、作品は、コンテンツが正しく示しているが、リフレッシュコンテンツでJS機能しませんしませ

$("#ajax-load").load('/ #content',function(){ 
    $('#ajax-load .button').click(function(){ 
    // my button function 
    }); 
}); 

すべてのアイデア?

答えて

2

代わりにこれを試してみてください:

$('#ajax-load').on('click','.button',function(){ 
    // my button function 
}); 

http://api.jquery.com/on/

+1

これはjQuery 1.7以上であることに注意してください。 –

+0

@MikeRobinsonおそらく、jQueryのドキュメントが私のためにしました。 – Blazemonger

0

jQuery.liveを試しましたか? liveは、アクションをセレクタの既存および将来のすべてのオカレンスと関連付けます。あなたが持っているのであれば:

$('.button').live('click', function(){ }); 

をこれは、既存の.button要素と将来のもので動作するはずです。

編集: jQuery 1.7では、liveの代わりにjQuery.onを使用する必要があります。

+1

blah blah [.liveは非推奨](http://api.jquery.com/live/)blah blah [代わりに.onを使用](http://api.jquery.com/on/)blah blah。 – Blazemonger

+0

良いキャッチ!私の答えを更新しました – Rob

+0

jQueryでも1.7でも '.live()'ではなく '.delegate()'を使うべきです。あなたが '.delegate()'をサポートしていない非常に古いjqueryを持っていない限り。 – PeeHaa