Почему это имеет значение, где я включаю файл сценария jQuery?

На моей основной странице (для всех страниц в моем сайте) у меня есть ToolkitScriptManager.

На моей странице содержания существует серия гиперссылок и отделений для разборной функциональности.

Код для показывания/скрытия панелей работает как следующее:

$(document).ready(function() {
// Hookup event handlers and execute HTML DOM-related code
$('#nameHyperLink').click(function() {

        var div = $('#nameDiv');
        var link = $('#nameHyperLink');
        if (div.css('display') == 'none') {
            link.text('Hide Data');
            div.show('100');
        }
        else {
            link.text('Show Data');
            div.hide('100');
        }

    });
});

Если я включаю ScriptReference в jQuery 1.4.2 файла в toolkitscriptmanager, код JavaScript выполняется неправильно на странице (только текст для гиперссылки изменяется, отделение на самом деле не показывают.) Однако, если я не включаю файл jQuery в ToolkitScriptManager и вместо этого включаю его в страницу содержания, он работает правильно.

Я - новичок Javascript/jQuery, и это не имеет никакого смысла вообще. Что продолжается здесь?

1
задан Matthew Jones 11 May 2010 в 17:50
поделиться

2 ответа

Позиционирование script include важно для jQuery ref. Если вы посмотрите на ваш сгенерированный источник, я готов поспорить, что тег находится ниже функции script(). Вы должны убедиться, что ссылка jQuery идет как можно раньше в исходном тексте страницы.

Попробуйте переместить ссылку на библиотеку jQuery в начало главной страницы, это должно сработать. В противном случае выложите исходник!

2
ответ дан 3 September 2019 в 00:39
поделиться

Как говорит Ти Джей... вероятно, должен находиться в разделе заголовков главной страницы. Кроме того, приятно ссылаться на версию этой библиотеки Google, потому что, скорее всего, ваши пользователи уже будут кэшировать ее. Например, посмотрите на источник для этой самой страницы.

Двумя наиболее вероятными причинами здесь являются $ еще не определены (см. ответ Tj) и $, определяемые другой библиотекой, такой как прототип.

Я настоятельно рекомендую вам посмотреть на использование отладчика Javascript Firebug,или, по крайней мере, взгляните на встроенную консоль ошибок Firefox (Tools -> Error console). Это даст вам гораздо лучшее представление о том, что происходит, кроме «это не работает».

0
ответ дан 3 September 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: