como anexar um evento a uma página móvel do jquery usando on () e off ()?
Estou tentando atualizar para o Jquery 1.7.1 durado (usando o JQM 1.1pre
Eu costumava ligar-me a uma página JQM como esta:
$('#mypage').live('pageshow', function() { /* do stuff */ })
Per Jquery 1.7.1 agora teria que ser:
$('#mypage').on('pageshow', function() { /* do stuff */ })
Ou se a página for inserida dinamicamente
$('body').on('pageshow', '#mypage', function() { /* do stuff */ })
Questões
- Essa sintaxe está correta para o jquery 1.7 +?
- Não consigo disparar os eventos no JQM usando isso. Eu tentei $ ('div: jqmData (role = "página") # mypage mas isso também não parece funcionar. Qual seria a sintaxe correta para anexar alguma funcionalidade apenas a uma página JQM específica?
Obrigado pela ajuda!
EDITAR
Alguns se intrometendo mais tarde, parece que você só pode ligar () e desligar () em $ ('div: jqmData (role = "page")'). Chamando um respectivo # pageID não funciona. Em um layout de várias páginas, uma ligação como essa será acionada uma vez por página; portanto, se você tiver 10 páginas no documento de várias páginas, faça o seguinte:
$('div:jqmData(role="page")').on('pageshow', function() {
// do stuff
});
dispara 10 vezes ou uma vez por página em um documento de várias página
Acho que isso será tratado pelo JQM antes da versão 1.1 ser lançada. Enquanto isso, uso isso como uma solução alternativa para garantir que as coisas sejam anexadas apenas uma ve
$('div:jqmData(role="page")').on('pageshow', function() {
console.log("one");
if ( $('.element').length > 0 && $('.element').jqmData('bound') != true) {
$('.element').jqmData('bound',true);
$('.element').on('click', function() { /* button click handler */ });
}
});
Estou verificando o comprimento para que o código seja executado apenas se.element está na página respectiva e se ainda não foi vinculado. Você também pode usar isso para off ().element no pagebeforehide. Apenas não se esqueça de redefinir o jqmData ('bound'), para que, na próxima pageshow, ele possa ser ligado novament