在jQM调用后var不更新?

时间:2013-02-14 00:29:12

标签: jquery jquery-mobile

我在jQuery Mobile中工作。

当你点击Page1时,我正在使用PHP将页面的ID设置为隐藏的输入。

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

当我点击一个按钮时,它会执行一些jQuery,它会抓取frmlid的值并提醒它。这很好。

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

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

现在,让我说我从Page1上的链接导航到Page2。 jQM做了它的事情并加载它所做的任何花哨的ajax。 Page2与Page1相同,通过PHP设置输入值。

这次点击btnShowComments时,它会提醒前一页page_id(Page1)而不是Page2。

如何在jQM加载新页面时不断更新?如果我右键单击并查看Page2上的源,则输入的值实际上是Page2。但似乎我的jQuery代码没有更新/获取新值。

任何提示?

1 个答案:

答案 0 :(得分:0)

使用jqm当你打开第一页时,所有页面实际上都在加载,所以无论你在哪个页面,都会加载和渲染所有页面,但它只显示你所在的页面。

所以首先你不能(最好不要)在所有页面中都有一个具有相同id的输入,而是使用class。

和第二个假设您在每个页面上都有一个按钮,其中隐藏输入靠近它,您必须获得最近的输入到tuched按钮 即与按钮

在同一页面中的输入

你也可以找到按钮的父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);
});