2013-02-12 4 views
0

У меня есть некоторые пользовательские события jquery, которые я использую на мобильном сайте jquery. Я включаю этот custom.js перед включением jquery-mobile - так как я считаю, что это правильный курс действий. Сначала включается jquery. Эти файлы включаются на каждую страницу.Использование пользовательского jquery с jQuery mobile?

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script src="/components/m/js/custom.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 

Когда я загружаю главную страницу индекса, нет элементов, использующих custom.js. Когда я нажимаю на страницу, чтобы углубиться, это моя проблема. Поэтому я нажимаю ссылку, чтобы просмотреть исполнителя, у которого есть событие в custom.js. Когда jquery mobile делает это, мое событие click не работает.

Однако, если я перезагружаю страницу, пользовательское событие click будет работать нормально.

Что мне не хватает? Должен ли я использовать .live («щелчок», а не просто .click?

+0

Вы уже пытались использовать live ('click')? Мне кажется, что это самый простой способ узнать. – Aeolun

+0

Я заметил, что live («click») работает несколько по мере его запуска, но мой вызов ajax не будет работать. Но если я обновляю страницу, все будет хорошо. Так что детские шаги. – Mike

+0

Является ли это более глубокой страницей, если это возможно, многостраничным (содержит более одного тега div с файлом jQM 'data-role =" page "')? – peterm

ответ

0

После разговора с Gajotres (по электронной почте с комментариями выше), мы пришли к следующему выводу.

мой пользовательский файл на самом деле расслоение плотной должен был прийти после файла jQM

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 
<script src="/components/m/js/custom-alt.js"></script> 

Кроме того, это то, что мой пользовательский файл выглядит расслоение плотной, как:.

$(document).bind("pageinit", function() { 
    var btnAddComment = $('#btn-addcomment'); 

    // register functions with jqm framework 
    $(btnAddComment).bind('touchstart mousedown', function(e){ 
     e.preventDefault(); 
     clickCommentAdd(); 
    }); 

    function clickCommentAdd() { 
     $("#form-comment").toggle(); 
     return false; 
    } 
}); 

Раньше я использовал «mobileint» вместо «pageint» и, как цитата из Гайостра:

Причина, по которой это событие, событие pageinit работает только при загрузке jQ-файла jQuery. Я также вижу, что вы пытались использовать mobileinit даже. Ну это событие предполагается использовать перед jQuery Mobile js-файлом (насколько это хорошо), но вы можете использовать его для привязки и клика, потому что вам нужно загрузить jQ-файл jQM для инициализации элементов страницы.

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