2009-07-31 31 views
4

Jqueryの読み込みを使用していて、コンテンツがdivに読み込まれるとすぐに、タグの一部を言語依存の変数に変更します。Jqueryを読み込み、読み込んだコンテンツを編集します

私の問題は、スクリプトを編集する準備が整うまで待つためにsettimeoutを使用する必要があるということです。

私が明らかに編集したい要素は、設定されていないため、準備ができていません。私はsettimeoutを使用するのが嫌です。これは誰もが最も遅い設定に制限され、常にいくつかの接続がそれよりも遅くなるからです。

明らかに、コールバックメソッドは、ajaxメソッドがhtmlを取得したことを意味していますが、インポートされた要素が実際にDOM内に用意されていることを保証するものではありません。

誰でもアイデアがありますか?私はここで

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds(), "", timedbasket()); 

を使用できるようにしたいと思い

現在のコード

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds()); 
... 
... 
setTimeout("timedbasket();", 500); 
... 
... 
function timedbasket() { 
    alert($('#basketlegend')); 
    $('#basketlegend').html(basketlabel); 
} 

はbasket.htmソース

<tr> 
    <td> 
     <div id="basket"> 
      <fieldset> 
       <legend><span id="basketlegend"></span></legend> 
       <table id="baskettbl" border="0" class="basket-table"> 
        <tbody> 
         <tr class='total'> 
          <td> 
           <span id="empty"></span> 
          </td> 
         </tr> 
        </tbody> 
       </table> 
      </fieldset> 
     </div> 
    </td> 
</tr> 
+2

'$("#content-basket ")load(...、" "、timedbasket())'は、$( "#content-basket" timedbasketを呼び出して、その戻り値を渡すのではなく、timedbasket関数を渡しています。 –

+0

これは答えだったので、コールバック宣言でパラメータを渡すことはできず、単に関数名を入れてください。ありがとう!返事をいただいた皆様に感謝しますが、パトリックはこれを手に入れました。 – MvcCmsJon

答えて

2

負荷とプットのためのコールバックパラメータを使用していますコールバック内のあなたのコード。

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds(),null, 
    function() { 
      ...do stuff here after #content-basket is finished loading... 
}); 

jQueryを見ると、コールバックが呼び出される前に応答が注入されているため、DOMを更新する必要があります。以前に存在していたDOM要素を参照する可能性がありますが、ロードによって置き換えられたjQueryオブジェクトを再利用している可能性はありますか?

+0

コールバックメソッドを使用しようとしましたが、インポートされた要素がコールバックメソッドを使用するときに設定されず、明らかにdomに完全にロードされていません。 – MvcCmsJon

+0

私の更新を見ましたか? – tvanfosson

+0

はい、あなたのコードをコピーしましたが、バスケットのラベルはまだ設定されていません。私はコールバックメソッドがDOMが準備ができていることを意味したと思ったが、明らかにそうではない。 – MvcCmsJon

0

jQuery.liveです。このようにイベントをDOM要素にバインドすると、新しいものでさえ影響を受けます。

+0

これは、生きているのは、basketlegendのonloadイベントを受け入れて動作します。 可能なイベント値:クリック、DBLCLICK、マウスダウン、のmouseup、のMouseMove、マウスオーバー、マウスアウト、KeyDownイベント、キー操作は、keyUpイベント は現在サポートされていません:ぼかし、フォーカス、MouseEnterイベント、mouseleave、変更、しかしjqueryのの ニース新機能を提出します。 – MvcCmsJon

関連する問題