IMHO AJAXの読み込みページ要素にJavaScriptコードを挿入しないでください。彼がそれをする最善の方法ではありません。 なぜAJAXの読み込みが終了した後、JavaScript関数を作成して起動できないのですか?またはクリックの上に置いたり、イベントを置く...
はJavaScriptにOnclick:スクリプト内
<a class="orange"
onclick="return voteClick(this, '{{ item.pk }}', '1', '{% url ajaxvote %}')"
href=''>Button text</a>
、その後:
function voteClick(self, pk, multiplier, url){
//some actions function makes
//for e.g. making POST or changing DOM
// you can use vars that are generated by django template system
return false;
};
jQueryの道:
$.post(url, { param1: value1, param2: value2 }, function(data){
//some function actions upon your AJAX complete
//call your function with code here
// you can load some 'data' for this script from django
// and not the whole script
voteClick(self, value1, value2, data);
return false;
} //end function
);//end POST
ouはこれについてもっと読むことができます:jQuery POST
ここで重要なのは、MEDIA_ROOTの静的コンテンツとしてスクリプトを読み込んで、必要なパラメータを渡す必要があるということです。 live()関数でスクリプトを読み込むのは難しい方法です。あなたは関数とパラメータの多くを追跡する必要があります。
もちろん、jQueryを使用している場合は、セレクタでコードイベントをトレースするのは簡単です。しかし、もう一度...なぜAJAXリクエストでコードをロードする必要がありますか?スクリプトファイルとしてここに使用されるのは間違いなくここに使用される静的ファイルです。
私は既に.live()を広く使用しています。私はまだ新しいコンテンツがロードされるときにスクリプトを実行する必要があります(つまりdocument.ready) – sxv
hmm ..コンテンツをロードするスクリプトの成功関数の一部としてスクリプトを実行できませんか? –
成功関数は、すべてのデータが完全にロードされるまで、またはデータが返されるのを見るまで待ちますか? – sxv