2011-07-25 10 views
0

この質問に似た投稿がたくさんありますが、私はajax呼び出しの応答にjavascriptを入れていないので間違っているとは思わないと思います。JqueryのHtmlレスポンスはjavascriptと連携していません

基本的に、ajaxは純粋なhtmlをdiv内に入れて返します。このdivは私のページの内側にあり、ページにはすでにCSSとjavascriptファイルへの参照が含まれています。私は基本的に私は何をすべきかjqueryのUI機能と見栄えするAJAX呼び出しによって返されたボタンをレンダリングしようとJavaScriptファイル、それらの一つで

$(".ButtonClass").button(); 

この

あるコードのこの作品は、ですdocument.ready関数であり、ajaxによって返されるhtmlにはすべてのボタンの "ButtonClass"が含まれています。

.button()は、返されたajax htmlの外側にあるボタンに対して機能しますが、ajax呼び出しから返された要素に対しては機能しません。

CSSスタイルが結果に適用されるため、動作するはずですが、結果を処理する関数を取得できないと思います.JavaScriptコードが返されません。このコードは参照されている外部ファイルにあります。ページ全体

+0

可能な重複:http://stackoverflow.com/questions/2559924/apply-jquery-ui-widgets-to-ajax-loaded-elements –

答えて

1

は、AJAXコールバックで

$(".ButtonClass").button(); 

を呼び出してみてください。

2

AJAXリクエストによって返された要素のボタンを有効にする場合は、レスポンスを受け取ったときに再度実行する必要があります。

.button()は、AJAX要求が行われる前に呼び出されたときにAJAXを含まない、呼び出された時点で選択された要素に対して実行されます。

$(".ButtonClass")にも前の.ButtonClass要素が含まれているため、ボタンに2回変換されますのでご注意ください。 AJAXの応答から選択する必要があります。

1

ajax呼び出しが正常に終了したときにデコレータ機能を適用する必要があると思います。この線に沿って 何か:

$('#myelement').load('script.php', function() { 

    // Now the page has some more button to decorate: 
    $(".ButtonClass .ugly").button().removeClass('ugly'); 

}); 

あなたが存在していないにして再美化すでに美しいボタン、私は新しいボタンに「醜い」クラスを追加して見ているよう:)

1

.button( )関数は、ボタンでなければならないページに新しいマークアップが導入されるたびに呼び出さなければなりません。これは.ready()で正しく行いますが、ajax呼び出しの成功関数に対しても行う必要があります。

1

divを設定した後に、これらのボタンを初期化する必要があります。

あなたのdivが、たとえば$containerというjavascript変数に格納されている場合は、このコンテンツをページに追加した後でコード$('.ButtonClass',$container).button()を実行します。

0

ajaxのコールバックには、$(".ButtonClass").button();を再度実行してください。

関連する問題