2013-09-21 3 views
0

У меня есть веб-страница, где я загружаю некоторые файлы javascript в заголовке. Некоторые подстраницы будут загружать дополнительные файлы javascript. На главной странице все работает нормально, но на субстранице я получаю много исключений, как это:Javascript не загружен.

Uncaught TypeError: Property '$' of object [object Object] is not a function

Я могу видеть, что это исключение происходит в details.js, voteHandler.js и 4 раза на странице HTML сам. Исключение всегда выброшено на этой линии:

$("document").ready(function() { 

Это как главная страница, которая работает выглядит следующим образом:

<head> 
     <script type="text/javascript" src=/Scripts/jquery-1.7.1.min.js></script> 
     <script type="text/javascript"> 
      //URL for voting 
      var _postVoteUrl = 'http://localhost:5215/Post/Vote' 
      //URL for tags 
      var _tagsUrl = 'http://localhost:5215/Post/Tags' 

      //Keep track of if a cascading is loading, if so, cancel submits 
      var cascadingControlLoading = false; 
      window.latestClick = ''; 

      function IsNotDblClick(objectID) { 
       if (window.latestClick != objectID && 
        !cascadingControlLoading) { 
        window.latestClick = objectID; 
        return true; 
       } else { 
        return false; 
       } 
      } 

      $(document).ready(function() { 
       if($('#rightCon').text().trim().length < 1) 
       {$('#rightCon').hide();} 
      }); 

     </script> 
     <script type="text/javascript" src=/Scripts/jquery-ui-1.8.20.min.js>"></script> 
     <script type="text/javascript" src=/Scripts/jquery.elastic.source.js></script> 
     <script type="text/javascript" src=/Scripts/jquery.validate.min.js></script> 
     <script type="text/javascript" src=/Scripts/jquery.validate.unobtrusive.min.js></script> 
     <script type="text/javascript" src=/Scripts/jquery.qtip.min.js></script> 
     <script type="text/javascript" src=/Scripts/formhandler.js></script> 
     <script type="text/javascript" src=/Scripts/taghandler.js></script> 
     <script src="/Scripts/voteHandler.js"></script> 
     <script type="text/javascript" src=/Scripts/select2.min.js %>"></script> 

    <script> 
     function TogglePostCon() { 
      $('#postListEditorCon').toggle(); 
     } 


     SetupTagTextBox("txtTagBox", false); 
     SetupTagTextBoxPersonalTag("txtPersonalTagBox", true); 
     SetupTagTextBoxPersonalTag("txtPersonalIgnoreTagBox", true); 
    </script> 

     <script src="/Scripts/modernizr-2.5.3.js"></script> 
    </head> 

И это подстраницы, что бросает исключение:

<head> 
      <script type="text/javascript" src=/Scripts/jquery-1.7.1.min.js></script> 
      <script type="text/javascript"> 
       //URL for voting 
       var _postVoteUrl = 'http://localhost:5215/Post/Vote' 
       //URL for tags 
       var _tagsUrl = 'http://localhost:5215/Post/Tags' 

       //Keep track of if a cascading is loading, if so, cancel submits 
       var cascadingControlLoading = false; 
       window.latestClick = ''; 

       function IsNotDblClick(objectID) { 
        if (window.latestClick != objectID && 
         !cascadingControlLoading) { 
         window.latestClick = objectID; 
         return true; 
        } else { 
         return false; 
        } 
       } 

       $(document).ready(function() { 
        if($('#rightCon').text().trim().length < 1) 
        {$('#rightCon').hide();} 
       }); 
      </script> 
      <script type="text/javascript" src=/Scripts/jquery-ui-1.8.20.min.js>"></script> 
      <script type="text/javascript" src=/Scripts/jquery.elastic.source.js></script> 
      <script type="text/javascript" src=/Scripts/jquery.validate.min.js></script> 
      <script type="text/javascript" src=/Scripts/jquery.validate.unobtrusive.min.js></script> 
      <script type="text/javascript" src=/Scripts/jquery.qtip.min.js></script> 
      <script type="text/javascript" src=/Scripts/formhandler.js></script> 
      <script type="text/javascript" src=/Scripts/taghandler.js></script> 
      <script src="/Scripts/details.js"></script> 
      <script src="/Scripts/voteHandler.js"></script> 
     <script> 
$(function() { 

       //Google +1 
       $.getScript("http://apis.google.com/js/plusone.js", null, true); 

       //Twitter 
       $.getScript("http://platform.twitter.com/widgets.js", null, true); 

       //Facebook 
       $.getScript("http://connect.facebook.net/en_US/all.js#xfbml=1", function() { 

        $('body').append('<div id="fb-root"></div>'); 

        FB.init({ status: true, cookie: true, xfbml: true }); 

       }, true); 
      }); 
    </script> 

     <script src="/Scripts/modernizr-2.5.3.js"></script> 
    </head> 

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

Так почему же моя подстраница генерирует эти исключения?

+0

Кто сказал, что загрузка скриптов в конце тела плохо? Я думал, что это было рекомендовано, потому что оно быстрее загружает страницу ... –

+0

Используется ли ['jQuery.noConflict()'] (http://api.jquery.com/jQuery.noConflict/)? Кроме того, эти страницы генерируются серверной средой? Есть несколько дополнительных операторов, включая '%>', в фрагменте, который предлагает встроенный код. Если да, то являются ли '

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