1

jQuery UI ダイアログと AJAX に奇妙なバグがあります。

これはプロセスです:

  1. リンクをクリックして、オープン div を AJAX にリンクします。
  2. AJAX divでリンクをクリックし、別のAJAXでjQuery UIダイアログを開きます。
  3. jQuery UI AJAX ダイアログのリンクをクリックして > alert()JavaScript でメッセージを送信します。

今、私は最初から同じプロセスを行いalert()ます。メッセージの段階まではすべて正常に機能します。したがって、次回プロセスを実行すると、ステップ 3 が機能せず、コンソールにエラーが表示されません。

ここに画像の説明を入力

ステップ 2 のコード (AJAX で jQuery UI ダイアログを開く):

function update_link(rel)
{
   $("#update_link").dialog({
            modal: false,
            height: 370,
            width: 900,
            title: 'im title',
            open: function () {
                $(this).load("<?= site_url()?>/links/show_update?id="+rel+"&rand="+rand());

            }
     });

}

手順 3 で警告メッセージを取得するコード (このコードは jQuery UI ダイアログ ページにあります):

$("#to_page_home").on("click", function (){
    alert("im not work if you open me in AJAX again!");
});

コードの代わりにこれを行うと、それも機能しません。

<a href="#" id="to_page_home" onclick="alert('im not work if you open me in AJAX again!');">

ありがとうございました。私の悪い英語で申し訳ありません。

4

1 に答える 1

1

いつでも #to_page_home に切り替えますか? その ID が消える/再表示される場合、on() は再表示されても再登録されません。

ドキュメントのDirect and Delegated eventsセクションを見てください。. . おそらく次のようなものが必要になるでしょう:

$("#parentContainer").on("click", "#to_page_home', function (){
    alert("im not work if you open me in AJAX again!");
});

この場合、ID が parentContainer の要素には、to_page_home の要素が含まれている必要があり、ページ上に永続的に存在する必要があります。

于 2012-08-06T18:00:06.880 に答える