2015-05-07 4 views
1

У меня есть javascript на странице .aspx, однако кажется, что jquery не определен, даже если инспектор страниц Chrome Chrome загружает jquery. Сценарии загружаются через конфигурацию пакета.

Bundle Config

bundles.Add(new ScriptBundle("~/bundles/allscripts").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-migrate-{version}.js", 
      "~/Scripts/jquery-ui-{version}.js", 
      "~/Scripts/Common.js", 
      "~/Scripts/knockout-{version}.js", 
      "~/Scripts/knockout.mapping-latest.js", 
      "~/Scripts/knockout-ext.js", 
      "~/Scripts/jquery.maskedinput.js", 
      "~/Includes/Lightbox/lightbox.js", 
      "~/Scripts/scrollTo.js", 
      "~/Scripts/modernizr-{version}.js", 
      "~/Scripts/Watermark.js", 
      "~/Scripts/jquery.validate.js", 
      "~/Scripts/json2.js", 
      "~/Scripts/jquery.autosave.js", 
      "~/Scripts/bootstrap.js", 
      "~/Scripts/jquery.fileupload.js", 
      "~/Scripts/toastr.js" 
      )); 

JavaScript

<script type="text/javascript"> 
    $(function() { 
     var displayMessage = false; 
     var queryForEligibleUser = $.getJSON('../Mvc/Home/DetermineIfWeShouldShowMessage', function (data) { 
      var result = $.parseJSON(data); 
      displayMessage = result; 
     }).done(function() { 
      console.log("Display message: ", displayMessage); 
      if (displayMessage) { 
       $.getJSON('../Mvc/Home/GetMessageToDisplay', function (messageToDisplay) { 
        console.log(messageToDisplay); 
        $('#DisplayMessage').text(messageToDisplay); 
       }); 
      } 
     }); 
    }); 
</script> 

Ниже этого сценария в нижней части страницы, где скрипты загружаются.

<![if (gt IE 8) | (!IE)]> 
<script src="/Scripts/jquery-2.1.3.js"></script> 
<script src="/Scripts/jquery-migrate-1.2.1.js"></script> 
<script src="/Scripts/jquery-ui-1.11.4.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/modernizr-2.8.3.js"></script> 
<script src="/Scripts/Common.js"></script> 
<script src="/Scripts/knockout-3.3.0.debug.js"></script> 
<script src="/Scripts/knockout.mapping-latest.debug.js"></script> 
<script src="/Scripts/knockout-ext.js"></script> 
<script src="/Scripts/jquery.maskedinput.js"></script> 
<script src="/Includes/Lightbox/lightbox.js"></script> 
<script src="/Scripts/scrollTo.js"></script> 
<script src="/Scripts/Watermark.js"></script> 
<script src="/Scripts/json2.js"></script> 
<script src="/Scripts/jquery.autosave.js"></script> 
<script src="/Scripts/bootstrap.js"></script> 
<script src="/Scripts/jquery.fileupload.js"></script> 
<script src="/Scripts/toastr.js"></script> 
+0

Возможно, вы использовали noConflict() .... try 'jQuery (function ($) {' вместо '$ (function() {' –

+0

добавить jquery в верхней части страницы, чтобы остальные скрипты остались внизу. – Manoj

+0

''? – artm

ответ

0

Я нашел решение здесь. enter link description here

Я переместил сценарий в отдельный файл, а затем разместил ссылку в нижней части страницы.

<script type="text/javascript" defer="defer" src="../Areas/Mvc/Scripts/ShowMessage.js"></script> 

Я использовал defer так скрипт загружается после того, как HTML визуализируется.

Смежные вопросы