2012-01-18 19 views
0

リンクのコンテンツをクリックすると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呼び出しを受けました。おっとっと!

答えて

1

onload組み込み関数内の関数は、ページが読み込まれたときに実行されません。ページ内のHTMLで定義されたすべてのコンテンツがロードされたときにのみ、onloadイベントが発生します。 jQuery docs for $.getScriptによれば、ファイルがロードされたときに実行される$ .getScriptに関数を2番目のパラメータとして渡すことができます。他のファイルのonloadにあるものを実行するか、その関数がインクルードファイルの関数を呼び出すようにすることができます。

+0

私は複数の$(window).load関数を持っています。このため、私は各関数を呼び出すことができません。 JSファイルを再実行する方法はありますか?または、私は実際にXMLHTTPRequestを作成する方が良いでしょうか?それはJSコードをもう一度実行するでしょうか? –

+0

他のJSファイルで名前付き関数を使用し、$(window).load(namedFunction)[または$(namedFunction)]を使用して、その名前付き関数を$ .getScriptの2番目のパラメータとして使用することもできます[あなたは$ .getScript(url、namedFunction)]を持っています。 – Phil

+0

それは私の問題の多くを解決するだろうが、私はjQueryといくつかの他のJSプラグインを使用しているので、私はそれらをすべて名前付き関数に変えることができないだろうと思う –

関連する問題