Проблема с несколькими файлами

0

Я столкнулся с уникальной проблемой с проектом Model View Controller, проблема возникает в рамках общей компоновки. У меня импортировано несколько файлов сценариев и стилей.

    <!-- Script: -->
    <script src="../../content/scripts/jquery.min.js"></script>
    <script src="~/Content/Scripts/Navigation.js" type="text/javascript"></script>

    <!-- Stylesheet: -->
    <link href="~/Content/Stylesheet/Skin.css" rel="stylesheet" />
    <link href="~/Content/Stylesheet/Navigation.css" rel="stylesheet" />

Поэтому у меня есть связанные навигационные данные в Navigation.css которые будут обрабатывать определенные макеты, а затем в Navigation.js он будет обрабатывать конкретные изменения корневого макета, добавляя такие элементы:

$(function () {
     if(screen.width < 768 || screen.width < 1024) {
         $("nav").addClass(".Desktop-Navigation");
     }
});

Но, похоже, он игнорирует код, когда он находится в отдельном файле. Он даже не содержит корень, однако код работает правильно в http://jsfiddle.net.

Я не уверен в проблеме или причине.

Я забыл упомянуть, что я действительно пробовал следующее:

  • Я пробовал делать $(document).ready
  • Перенос скриптов на последний элемент, загруженный на страницу.

Код выше addClass всегда выполняется, но часть addClass никогда не выполняется. Это код, который всегда выполняется:

$(function () {
     $("#Toggle-Menu").click( function () {
          $("nav").animate({ height: 'toggle' }, 500);
     });
});

Это проблема, связанная с тем, как Model View Controller отображает ее Views, почему это происходит?

  • 0
    Посмотрите на сгенерированный HTML («просмотреть исходный код» в браузере) и проверьте, имеет ли смысл путь к JS.
Теги:
asp.net-mvc

1 ответ

1

Похоже, ваш JavaScript выполняется до того, как ваш HTML будет полностью отображен. Это подкрепляется тем фактом, что ваш jsfiddle, вероятно, настроен на выполнение на готовом документе. В результате, попытка упаковки вашей функции также является документом.

$(document).ready(function () {
    if(screen.width < 768 || screen.width < 1024) {
        $("nav").addClass(".Desktop-Navigation");
    }
});
  • 0
    Я попробовал это, но все равно не повлияло на это. Довольно своеобразно.
  • 0
    Ваш код Navigation.js когда-нибудь попадет, если вы разместите точку останова внутри? Кроме того, вы проверили, что сценарий на самом деле рушится?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню