Функция загрузки jQuery, другой JS не работает? - PullRequest
0 голосов
/ 19 января 2012

Я использую функцию загрузки jQuery для загрузки содержимого ссылки при ее нажатии, и все прекрасно работает, кроме JavaScript на страницах.

Я предполагаю, что это потому, что он просто не получаетприменяется к новому контенту.Я посмотрел на функцию $.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, перечисленных выше (скрипты, плагины, modernizr), они не выполняются снова с функцией $.getScript?Или мне нужно найти другой способ перезагрузить функции загрузки?

Спасибо

Редактировать Фил ответ сработал.У меня только что был вызов getScript в неправильном месте.Oops!

1 Ответ

1 голос
/ 19 января 2012
Функции

onload во включаемых JS-файлах не выполняются при загрузке, поскольку событие onload происходит только при загрузке страницы (и всего содержимого, определенного в HTML на странице).Согласно документам jQuery для $ .getScript вы можете передать функцию в качестве второго параметра в $ .getScript, который будет выполняться при загрузке файла;вы можете сделать то же, что и в onload в других файлах, или заставить эту функцию вызывать функцию из включенного файла.

...