2012-01-20 4 views
0

Итак, у меня есть динамически загруженная кнопка, вызываемая со следующим событием .live ('click').JQuery Mobile .live и .bind не применяется к кнопке

$('#page').live('pageinit', function() { 
    $('.email-button').live('click', function() { 
     // do button stuff 
    }); 
});   

Однако поведение очень странное. Когда страница загружается и вы пытаетесь нажать кнопку, ничего не происходит. Затем, если вы обновите ту же страницу, произойдет событие клика. Это почти так, как будто это не является обязательным в первый раз. Я также пробовал метод .bind, а также метод .live('vclick'), но при первом запуске загрузки ничего не работает, и я не могу понять, что вызывает это. Я думал, что что-то прочитал, используя .create, но я не думал, что это применимо ко мне. Любые ведут в правильном направлении?

+0

Я не знаком с JQuery мобильного телефона, но если вы используете 'live' почему ты нужно сделать это на 'pageinit'? – lonesomeday

+0

Документы для JQ mobile говорят использовать вместо $ (document) .ready() – Naterade

+0

Хорошо, но вам, как правило, не нужно ждать, когда DOM будет готова к связыванию с 'live' ... Конечно' pageinit' будет вызываться несколько раз, поэтому вы будете связаны с несколькими обработчиками событий, связанными ... (Кстати, было бы неплохо использовать 'on', а не' live', между прочим.) – lonesomeday

ответ