jQuery разные страницы с различными действиями с одним файлом .js - PullRequest
1 голос
/ 07 февраля 2009

Моя веб-страница с различными сайтами должна просто загрузить один файл .js для оптимизации кэша. Проблема возникает, когда файл загружен. Он применяет прослушиватель на каждой странице к элементам формы (например), поэтому только форма последней страницы работает так, как должна, остальные не вызывают перезапись их действий.

Итак, мой вопрос, как я могу сказать, что сценарий, который он должен применить только для этого сайта для нерешительных слушателей.

Я использую фреймворк jQuery.

Ответы [ 3 ]

4 голосов
/ 07 февраля 2009

Ваша попытка оптимизировать браузер противоречит вашему постраничному поведению. Я бы не совал все это в один файл js. Подумайте о ремонтопригодности, модульности.

Вы можете поместить общий / общий код в один файл js и включить его на всех страницах. Браузер все еще будет кешировать все, ему просто нужно будет сделать дополнительный запрос, только чтобы проверить, был ли он изменен с момента его последней загрузки. Но по крайней мере ваше здравомыслие все еще будет под контролем.

Но в любом случае вот ответ:

Страница 1:

<body id="page1">...</body>

Страница 2:

<body id="page2">...</body>

и т.д.. Теперь в monster.js, когда вы привязываете свое поведение к странице 1:

$(document).ready(function() {
    if(this.body.id != 'page1')
        return;

    // proceed as before
})

То же самое для раздела, связывающего поведение с элементами страницы 2:

$(document).ready(function() {
    if(this.body.id != 'page2')
        return;

    // proceed as before
})

и т.д.

2 голосов
/ 09 декабря 2011

Вы можете разделить логику для конкретной страницы с помощью body#id: Один файл JS для нескольких страниц

0 голосов
/ 07 февраля 2009

Оберните каждую страницу в разные элементы div простым идентификатором, таким как «page1» и «page2». Затем в вашем javascript захватите элементы с идентификаторами:

$('#page1 div').show();
$('#page2 div').hide();

Это покажет все div на странице 1 и скроет их всех на странице 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...