1

DIVがあり、その中にJQueryサンプルからコピーされたオートコンプリートウィジェットがあります:http://jqueryui.com/resources/demos/autocomplete/default.html

ボタンを押すと、DIVのコンテンツが新しいHTMLに置き換えられ、HEADERには動的に生成されたJavascriptが含まれ、オートコンプリートが初期化されます。

<head> .. 
<script>
$(function() {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Scala",
        "Scheme"
    ];
    $( "#tags" ).autocomplete({
        source: availableTags
    });
});

私の問題は次のとおりです。$(function())は、DIVのサブシーケンスのリロード時に評価されません==オートコンプリートは機能しません。

驚いたことに、DIVの「準備完了」イベントはありません

オートコンプリートコードを再初期化する方法を教えてください。

メインページにはPROJECTセレクターが含まれており、変更すると、オートコンプリートウィジェットを含む動的に生成された詳細がDIVに再ロードされます。

<html>
 <head>
  <script>
   function refresh_div() {
    ..    
    document.getElementById(DYNA_DIV).innerHTML = self.xmlHttpReq.responseText;
   }
  </script>
 </head>
<body>
 <select id=PROJECT_ID onchange="refresh_div()" ..>
 <div id="DYNA_DIV"> ..here is dynamically generated form with autocomplete widget containing items related to the PROJECT selected above</div>
</body>
</html>

DIVのHTMLは次のとおりです。提案されているように、HTML、HEAD、BODYを削除しました

最初にロードオートコンプリートが機能します。DIVの内容を更新すると、以下の初期化スクリプトが実行されません。

  ..  <input type="text" name="AUTOCOMP"> ..

 <script>
    $(function() {
        var availableItems = [ <% dynamically enumerate items for PROECT_ID %> ];

        $( "#AUTOCOMP" ).autocomplete({
            source: availableItems
        });
    });    

  </script>

-alex

4

2 に答える 2

1

DIVのコンテンツを完全な HTML ツリーに置き換えますか

<html>
  <head>
    <script>...

はいの場合、要素を作成してこの新しいツリーを含めない限りIFRAME、コンテンツはブラウザーによって無視されます。内部に入れたいコンテンツを出力するだけでDIV(タグ: とそのすべてのタグなしHTML) HEADBODY内にあるものだけを含める必要がありますBODY。ここで必要な場合は、SCRIPT内部に含めることもできます。BODY

更新

質問を更新した後、1 つのエラーが表示されます。質問だけの間違いかもしれませんが、試してみましょう:

あなたは"#AUTOCOMP"セレクターを持っていますが、持っています<input type="text" name="AUTOCOMP">。コンテンツがそのように見える場合は、'input[name="AUTOCOMP"]'代わりにセレクターで入力を選択する必要があります。

于 2012-11-22T09:39:53.200 に答える
0

コードを でラップしてみてくださいadd_load:

Sys.Application.add_load(function () {

    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Scala",
        "Scheme"
    ];
    $( "#tags" ).autocomplete({
        source: availableTags
    });

});
于 2012-11-22T09:33:05.583 に答える