0

jQuery Mobile に次のコードがあります。このコードは、ページが最初に読み込まれるときは正常に機能しますが、このページに移動すると何もしません。

$('#dontKnowReg').click(function(){
    if($(this).is(':checked')) { 
            $('#dontKnowRegDetails').slideDown();
    } else {
           $('#dontKnowRegDetails').slideUp();
    }
});

.click を .live に変更して同様の問題を修正しましたが、この場合、コードがまったく機能しないことを意味します (ページを更新しても)。ありがとう

$('#dontKnowReg').live('click', function () {
    if($(this).is(':checked')) { 
            $('#dontKnowRegDetails').slideDown();
    } else {
           $('#dontKnowRegDetails').slideUp();
    }
});
4

2 に答える 2

0

jQueryでdomreadyを使用できないようです。今それは動作します:

//$(document).ready(function() {
$("#mypage").live('pageinit', function() {

http://forum.jquery.com/topic/how-to-use-pageinit

于 2012-11-27T15:43:18.607 に答える
0

これはうまくいくはずです:

$('#page').live('pagebeforeshow',function(e,data){
    $('#dontKnowReg').unbind();
    $('#dontKnowReg').bind('click', function(e) {
       if($(this).is(':checked')) { 
         $('#dontKnowRegDetails').slideDown();
       } else {
         $('#dontKnowRegDetails').slideUp();
       }
    });
});

#page がチェックボックスを見つけることができるページであるとしましょう (そのチェックボックスのあるページが他にもある場合は、これを使用します: $('#page, #page2, #page3').live('pagebeforeshow'...... ). ページ #page が表示されるたびに、チェックボックスにイベントをバインドします (イベントが既にバインドされている場合にバインドを解除するには、unbind を使用します。これは Event Filter で防ぐこともできますが、ここに例はありません)。お役に立てれば。

これはイベントフィルターに関するもので、 jQm環境で必要な理由例を次に示します。

2 番目の例は、jQM 環境でより適切に機能するはずです。唯一の問題は、いつ適用するかでした。新しいバージョンを使用している場合は、.live(、.bind(、.delegate() の代わりに .on( の使用を検討してください。

于 2012-11-27T13:00:34.760 に答える