2017-01-19 3 views
0

Кто-нибудь знает, почему следующий код отказывается отображать текущую активную страницу в консоли в Firefox или Chrome? Код находится в заголовке приложения, а не в любом разделе страницы, и он появляется после загрузки всех других библиотек javascript. Также . , , даже если выбор pagecontainer неверен, не появится ли «Это идентификатор страницы:»? Консоль браузера не регистрирует НИЧЕГО. (Кстати, JQuery мобильные документы несчастны. Они не объясняют, что «pagecontainer» реализуется на теле или документа. Я должен был найти, что (и код выбора) где-то в другом месте.)Почему нет jQuery для вывода на консоль?

<script type="javascript/text"> 
    $(document).ready(function() { 
    var pageId = $('body').pagecontainer('getActivePage').prop('id'); 
    console.log("This is the page ID:" + pageId); 
    }); 
</script> 

ответ

0

Вы можете необходимо организовать ваши сценарии и активы, но если это абсолютно необходимо в голову, вы можете поставить его на mobileinit случае перед загрузкой JQuery Mobile:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> 
 
    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 
 
    <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> 
 
    <script> 
 
    $(document).ready(function() { $("#events").append("jQuery Dom Ready<br>"); }); 
 
    $(document).on('mobileinit', function() { 
 
     function showme(e, ui){ 
 
     var activePage = $(":mobile-pagecontainer").pagecontainer("getActivePage").prop("id"); 
 
     $("#events").append("JQM Event: "+e.type+": "+activePage+"<br>"); 
 
     if(activePage) { 
 
      $("#events").append("JQM Active Page: "+activePage+"<br>"); 
 
     } 
 
     if(e.target){ 
 
      if(e.target.id) 
 
      $("#events").append("Target Page: "+e.target.id+"<br>") 
 
     } 
 
     if(ui){ 
 
      var to = ui.toPage; 
 
      if(ui.prevPage) { 
 
      var fromId = ui.prevPage.prop("id"); 
 
      if (fromId == "undefined") { 
 
       $("#events").append("JQM "+e.type+" from: " + fromId+"<br>"); 
 
      } else { 
 
       $("#events").append("JQM "+e.type+" from -initialization-<br>"); 
 
      } 
 
      } 
 
      if (typeof ui.toPage == "object") { 
 
      $("#events").append("Can manipulate " + ui.toPage.prop("id")+"<br>"); 
 
      } 
 
     } 
 
     } 
 
     $(document).on("pagecreate", function(e, ui) { showme(e, ui); }); 
 
     $(document).on("pagecontainertransition", function(e, ui) { showme(e, ui); }); 
 
     $(document).on("pagecontainerbeforechange", function(e, ui) { showme(e, ui); }); 
 
     $(document).on("pagecontainerbeforeshow", function(e, ui) { showme(e, ui); }); 
 
     $(document).on("pagecontainershow", function(e, ui) { showme(e, ui); }); 
 
     $(document).on("pagecontainerhide", function(e, ui) { showme(e, ui); }); 
 
    }); 
 
    </script> 
 
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
 
</head> 
 
<body> 
 
    <div data-role="page" id="page-1"> 
 
    <div role="main" class="ui-content"> 
 
     <div id="events"> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</body> 
 
</html>

Наконец, как вы жалуетесь на отсутствие документации, я даю вам некоторые полезные ссылки:

Если вам нужны некоторые подробности о $(document).ready, здесь отличный ответ от Gajotres обновляется для текущей версии JQuery Mobile 1.4.5 :

jQuery Mobile: document ready vs page events

... и здесь вы можете найти замечательный график, объясняющий все подробности о JQM странице навигации:

jQuery Mobile “Page” Events – What, Why, Where, When & How? из Omar

Наконец, здесь вы можете найти JQM площадка:

Navigate between pages and open and close panel and popup widgets to see which events fire and their data.

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

  • Нет связанных вопросов^_^