1

ブートストラップ モーダル ダイアログにフォームを表示しようとしていますが、ツールチップ コントロールも使用したいと考えています。ajax load 関数を使用してモーダル ダイアログのコンテンツを読み込んでいます。

ブートストラップ ツールチップ コントロールを使用したいので、コンテンツが読み込まれたときに初期化する必要があります。

グローバルな ajax 完了イベントをキャッチし、ツールチップの初期化コードをこの関数に入れます。

 //Global Ajax Complete
$("body").bind("ajaxSend", function (e, xhr, settings) {
    //Sent
}).bind("ajaxComplete", function (e, xhr, settings) {
    //Complete
    afterLoad();
}).bind("ajaxError", function (e, xhr, settings, thrownError) {
    //Error
});

function afterLoad() {
    // code to execute
    $(".btn").popover();

    $(".validator").tooltip();
} 

私の問題は、コンテンツがロードされ、afterLoad 関数が実行されているときに、次のエラー メッセージが表示されることです。

0x800a01b6 - JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'popover' をサポートしていません

ブートストラップ js は html に含まれており、どのページでも使用できますが、モーダル ダイアログ ページでは使用できます。

モーダル ダイアログのコンテンツが ajax を使用して読み込まれているためだと思います。

l.

4

1 に答える 1

0

これは、jQuery を複数回ロードしたときに発生します。そうしないでください!jQuery が読み込まれると、オブジェクトが定義され、名前 $ に割り当てられます。プラグインがロードされると、そのオブジェクトが変更され、プラグインによって定義された新しい関数が追加されます。jQuery が 2 回目にロードされると、新しいオブジェクトが (再) 定義され、$ という名前に割り当てられます。この 2 番目の jQuery オブジェクトには、最初に格納されたデータと追加の関数がありません。

于 2013-07-03T11:33:59.277 に答える