私は、モーダル内でAjax呼び出しによって読み込まれるPタグにjQuery Text Editorライブラリを適用しようとしています。これは、多くの異なるjQueryのバージョンがロードされると、やや古いとAjax重いサイトの一部ですが、「2.1.4」の任意の点を返しますで、JSコンソールにjQueryライブラリ "not a function"クリックイベントで呼び出されたとき
$.fn.jQuery
を実行しています。
ページ上の既存の「静的な」要素に ".jqte()"を適用すると、意図した通りにライブラリが読み込まれることがわかります。これは、モーダルがプログラムのフローでロード/可視化される前です。
$(document).ready(function(){
$(".odd").jqte();
});
上記のスニペットは、すべての ".odd"要素を小さなテキストエディタに変換します。
$("#showScraper").click(function(){
$(".editor").jqte();
});
上記は私に苦痛を与えている原因です。
私は目の肥えた苦労を抱えている理由エラー
Uncaught TypeError: $(...).jqte is not a function
は
$(".myClass").anyLibrary();
が私のクリックイベント内で呼び出されたときにのみ表示されます。これはIDにも当てはまります。
何が原因なのでしょうか? jQueryのバージョンの競合? This question seems similar, and suggests that it could be a version conflict
Ajax呼び出しが行われたときに何らかの形でhtmlインポートが読み込まれない可能性はありますか?それともスコープを理解できないのですか?
すべてのヘルプは大歓迎です!
いくつかのコード:モーダルの内側に配置されるHTMLやコンテンツを生成
PHP:
$button = '<p><a href="/my/ajax/path" id="showScraper" rel="modal:open">Show me the stuff</a></p>';
マイ輸入:
echo '<div id="scrapedText"><p class="editor" name="text1">';
foreach ($matchContent['about']['p'] as $key => $value) {
echo $value , "<br /><br />";
}
echo '</p></div><br/>';
モーダルを開くリンク
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="/css/jquery.modal.css" />
<script type="text/javascript" src="/scripts/jquery.modal.js"></script>
<link rel="stylesheet" type="text/css" href="/static/jQuery-TE_v.1.4.0/jquery-te-1.4.0.css" />
<script type="text/javascript" src="/static/jQuery-TE_v.1.4.0/jquery-te-1.4.0.min.js"></script>
* "jQueryバージョンの競合?" *はい。 jQueryの1つのインスタンスに対してプラグインをロードしていますが、失敗したコードで使用されているバージョンではなく、他のインスタンスのプラグインをロードしています。私はこれがあなたがリンクしているものと重複していないことは分かりません。 –
* "これは幾分古いAjaxの重いサイトで、多くの異なるjQueryバージョンがロードされています..." *あなたがやっていることを止めて*修正してください。 jQueryの単一のコピーをロードします。複数のコピーを読み込むとページが大きくなり、読み込み時間が長くなり、実行中のような面倒を招くことになります。 –
@ T.J.Crowderクリーンアップは確かに私がやりたいことです。あなたの最初のコメントをちょっと詳しく説明できますか?私はそれの要点を逃しているように感じる:/ – Kyrre