0

私はjQueryMobile内で作業しています。

Page1を押すと、PHPを使用してページのIDを非表示の入力に設定しています。

<input type="hidden" name="frmlid" id="frmlid" value="<?=$page_id;?>" />

ボタンをクリックすると、frmlidの値を取得して警告するjQueryが実行されます。これは正常に機能します。

$(btnShowComments).bind('touchstart mousedown', function(e){
    e.preventDefault();

    var frmlid = $("#frmlid").val();
    alert(frmlid);
}); 

ここで、Page1のリンクからPage2に移動するとします。jQMはそれを実行し、それが実行するどんな派手なajaxのものでもロードします。Page2はPage1と同じように動作し、PHPを介して入力値を設定します。

今回、btnShowCommentsをクリックすると、Page2ではなく前のpage_id(Page1)にアラートが表示されます。

jQMが新しいページをロードしたときに継続的に更新するにはどうすればよいですか?Page2を右クリックしてソースを表示すると、入力の値は実際にはPage2です。しかし、私のjQueryコードは新しい値を更新/取得していないようです。

任意のヒント?

4

1 に答える 1

0

jqm を使用すると、最初のページを開いたときにすべてのページが実際に読み込まれるため、現在のページに関係なく、すべてのページが読み込まれてレンダリングされますが、現在のページのみが表示されます。

したがって、まず、すべてのページで同じ id の入力を使用することはできません (使用しないほうがよいでしょう)。代わりに、 class を使用します。

次に、すべてのページにボタンがあり、近くに隠し入力があると仮定すると、タッチされたボタンに最も近い入力、つまりボタンと同じページの入力を取得する必要があります

ボタンの親divを見つけて、そのdiv内の入力を見つけることもできます

<input type="hidden" name="frmlid" class="frmlid" value="<?=$page_id;?>" />

とjqコード

$(btnShowComments).bind('touchstart mousedown', function(e){
    e.preventDefault();

    var frmlid = $(this).closest('.frmlid').val();
    alert(frmlid);
}); 
于 2013-02-14T02:45:25.453 に答える