リンクのコンテンツをクリックするとjQueryのロード機能が使用され、ページ内のJavaScriptとは別にすべてが機能しています。jQueryのロード機能、他のJSは機能しませんか?
これは、新しいコンテンツに適用されていないためです。
私は$.getScript
の機能を見ましたが、私はそれを完全に理解していないし、私が試したことは機能しません。
私がこれまでに作成したJavaScriptの:
var dest = new Array(4);
dest[0] = window.location.href;
dest[1] = 'content/index.php';
dest[2] = 'content/slideshow.php';
dest[3] = 'content/scaffold.php';
dest[4] = 'content/elements.php';
dest[7] = 'content/404.php';
function loadcontent(d, b, p, newclass) {
var stateObj = { foo: p };
if (b == 'yes') {
$('#bgdiv').html('<img id="bg" src="images/bg_bokeh.jpg" style="width:100%;height:100%;" />');
} else {
$('#bgdiv').html('');
}
document.body.className = newclass;
if (dest[d] == 'content/slideshow.php') {
$.getScript('js/external-slideshow.js');
}
$.getScript('js/scripts.js');
$.getScript('js/plugins.js');
$.getScript('js/modernizr.js');
$('#page-content').load(dest[d]);
history.pushState(stateObj, p, p);
}
そして、私は私のリンクに使用するコード:
<a href="javascript:loadcontent('3', 'yes', 'about.php', 'page page-id-269 page-template-default');">about</a>
を私は(上記3つのjsファイル内の関数をonloadイベントしていますスクリプト、プラグイン、modernizr)は、$.getScript
関数で再度実行されませんか?あるいは、私はonload関数をリロードする別の方法を見つける必要がありますか?
おかげ
編集
フィルの答えは働きました。私はちょうど間違った場所でgetScript呼び出しを受けました。おっとっと!
私は複数の$(window).load関数を持っています。このため、私は各関数を呼び出すことができません。 JSファイルを再実行する方法はありますか?または、私は実際にXMLHTTPRequestを作成する方が良いでしょうか?それはJSコードをもう一度実行するでしょうか? –
他のJSファイルで名前付き関数を使用し、$(window).load(namedFunction)[または$(namedFunction)]を使用して、その名前付き関数を$ .getScriptの2番目のパラメータとして使用することもできます[あなたは$ .getScript(url、namedFunction)]を持っています。 – Phil
それは私の問題の多くを解決するだろうが、私はjQueryといくつかの他のJSプラグインを使用しているので、私はそれらをすべて名前付き関数に変えることができないだろうと思う –