2012-02-17 8 views
0

を隠す私はjqueryの携帯電話と本当に奇妙な問題があります。jQueryのモバイル:イベントはショーの後にボタンに付加することができませんクリック/

私はテーブルを使用して行を非表示:

$('tr ...').hide(); 

テーブル行以内ボタン1などの定義されたボタンがあります。

ので、私は呼んで、まず私が可視の行を作るために表示、非表示、その後$( '#ボタン1')$( '#のButton1を')を呼び出しますが、ボタンが離れている:

$('#button1').button(); 

。大きな問題は今、私は再びクリックイベントを添付することはできません、以前のイベントは離れている。

私はイベントをアタッチするには、以下のstradegiesを試してみました:

$("#button1").click(...); bzw. $("#button1").live('click', ...); 

$(document).ready("#button1").click(function() { 
    alert(1); 
}); 

$(document).ready("#button1").live('click', function() { 
    alert(1); 
}); 

第一及び第2の変形は働いてもされていません。最後の2つのバリアントは動作していますが、イベントパラメータとして正しい送信者オブジェクトを取得できません(例:$(this).attr( 'id'))。

この問題の解決方法をご存知ですか、私は本当にいくつかの助けに感謝します。事前に

おかげで、 マーティン

答えて

0

はjQueryのモバイルで$(ドキュメント).ready()を使用しないでください!説明のためにDOCSをチェックしてください!

多分これはあなたの答えのためのあなた

$('#page_id_blahblah').live('pageshow',function(){ 
    //do things with button show hide etc.. 
    //then append event to button after show, or before, or when you want 
    var some_variable = 'button1'; 
    $('#button1').click(function(){ 
     alert("Button pressed: " + some_variable); 
    }); 
}); 
0

感謝をするのに役立ちます。私は間違いを見つけました、それは私のコードのバグでした。障害によって、私はテーブルの行だけでなく、ボタンも隠していました。私がTRを隠すだけなら、クリックイベントはまだそこにあります。ブートストラップについては、現在$(document).live('pagebeforeshow', ...);を使用しているので、すべて正常に動作します:)

関連する問題