Как выполнить пользовательский js после того, как jQuery Mobile создал новую страницу div? - PullRequest
1 голос
/ 04 июня 2011

Так что я использую Django 1.3 и jQuery Mobile для веб-приложения.При попытке создать новую функциональность или переопределить некоторые из функциональных возможностей jQM я, кажется, не могу заставить его извинить некоторый код при создании страницы.Я все еще хакер в js, но это, кажется, более серьезная проблема, чем я Как выполнить JavaScript после перехода страницы с помощью jQuery Mobile

В итоге я помещаю фрагменты js на страницуСамо по себе, что кажется неправильным способом, они иногда работают, а иногда нет.Я пробовал те же команды в консоли скриптов Chrome, и селектор и команды, кажется, работают нормально.

примеры:

Скрытие числовых входов на ползунках Я заканчиваю тем, что ставлю этот тег скриптав самом шаблоне я знаю, что это плохая форма, но я не уверен, как заставить его работать иначе:

<script>
    $('#form_div > input').hide();
</script>

Попытка сделать подобный фрагмент:

<script>
        console.log("Focus snippet!");
        $('.ui-input-text').blur(function(){
            console.log("focus was changed!");
        });
</script>

не даетрезультаты, за исключением исходного console.log, но я могу выполнить его через консоль сценария, и она отлично работает.

Я видел в нескольких других постах, но ни один из них не дал четкого ответа на вопрос, и я не уверен, каккак заставить это работать правильно.

Это казалось самым близким предложением, но я не смог заставить его работать: Мобильный Jquery: как выполнить пользовательский код jquery на странице

$(“body”).delegate(“div[data-role*='page']“, “pageshow”, function(){

// Your code here. It is good to check to not run unnecessary code

});

Любые предложения будутс благодарностью.

1 Ответ

1 голос
/ 05 июня 2011

Смотрите документацию здесь: http://jquerymobile.com/demos/1.0a4.1/#docs/api/events.html

$('div').live('pageshow',function(event, ui){
  alert('This page was just hidden: '+ ui.prevPage);
});

$('div').live('pagehide',function(event, ui){
  alert('This page was just shown: '+ ui.nextPage);
});

Одна небольшая заметка заключается в том, что весь javascript, выполняемый на любой странице, должен находиться на базовой странице (например, index.html). Если вы добавите javascript для page2.html в page2.html, он не будет выполнен. если вы добавите javascript для page2.html в index.html, он будет выполнен.

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