0

動的に読み込まれるコンテンツでjQueryの豊富なアニメーション機能を使用しようとしています。

次のような要素にスクリプトを動的に挿入できます。

var element = document.createElement("div");
element.innerHTML = "some html here";

var script  = document.createElement("script");
script.type = "text/javascript";
script.text = 'alert("Alert!");';

element.appendChild (script);

スクリプト要素にjqueryコードを挿入しようとすると、問題が発生します。これは機能せず、スクリプトがまったく実行されません。

var element = document.createElement("div");
element.innerHTML = "some html here";

var script  = document.createElement("script");
script.type = "text/javascript";
script.text = 'alert("Alert!");\n';
script.text = script.text+'$("div").animate({height:300,opacity:0.4},"slow");\n';

element.appendChild (script);

javascriptコードを追加して必要な要素を変更することはできますが、jquery関数を使用すると作業が簡素化されます。

firebugを使用すると、スクリプト要素がdomにロードされていることがわかりますが、jqueryコードを追加しても、アラートも含めて何も起こりません。

メインドキュメントにjqueryソースファイルを含め、すべてのコードをwindow.addEventListener('load'、function())にラップして、ページの読み込みが完了したときに上記のコードを開始する関数を呼び出しました。

jquery関数への呼び出しを動的に作成する方法はありますか?私はこれを正しい方法で行っていますか?私はしばらく困惑していて、グーグルは私のためにこれを解決していません、どんな助けもありがたいです。

4

2 に答える 2

0

これはあなたが望むことをするはずです:

$('body').append('<s' + 'cript>console.log("lol");</script>');

しかし、コードを関数にラップして、いつでも呼び出すことができるのはなぜですか?

function iAnimateThings() {
   $("div").animate({height:300,opacity:0.4},"slow");
}
于 2012-09-13T19:45:21.387 に答える
0

この行で1つの逆コンマを見逃しただけのコードに問題はありません

script.text = script.text+'$("div").animate({height:300,opacity:0.4},"slow")';

これがあなたの作業フィドルです http://jsfiddle.net/vYut9/

于 2012-09-13T19:45:55.520 に答える