2012-01-20 10 views
0

したがって、次の.live( 'click')イベントで呼び出される動的に読み込まれたボタンがあります。Jquery Mobile .liveと.bindはボタンに適用されません

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

しかし、動作は非常に奇妙です。ページが読み込まれ、ボタンをクリックしようとすると、何も起こりません。同じページをリフレッシュすると、clickイベントが発生します。それは、まるで最初に縛られていないかのようです。私も.bindメソッドと同様に.live('vclick')メソッドを試しましたが、何もページの読み込みが初めてで、何が原因であるかわからないようです。私は.createの行に沿って何かを読んだと思ったが、それは私に当てはまるとは思わなかった。正しい方向のリード?

+0

私はjQueryのモバイルに慣れていないんだけど、あなたはあなたがなぜlive' '使用している場合'pageinit'でそれをする必要がありますか? – lonesomeday

+0

JQ mobileのドキュメントは、$(document).ready()の代わりに使用すると言います。 – Naterade

+0

まあまあですが、通常は 'live'とバインドする準備ができているのを待つ必要はありません...確かに' pageinit'複数回呼び出されるので、複数のイベントハンドラがバインドされることになります(途中で 'live'ではなく' on'を使うのは良い考えです)。 – lonesomeday

答えて

0

ここに回答が見つかりました。 How to initialize pages in jquery mobile? pageinit not firing

あなたは、体内の

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

を置く場合、それは動作します: <body> <div id="indexPage" data-role="page"> //code here </div> </body>

関連する問題