jQuery Mobile listview详细页面数据更改仅在第一次使用时有效

jQuery Mobile listview详细页面数据更改仅在第一次使用时有效,jquery,jquery-mobile,Jquery,Jquery Mobile,有人能帮忙吗?请在浏览器上运行以下代码并查看发生了什么 每当产品列表以显示顺序输入listview时,就会出现我的问题。例如,用户输入prod1和显示顺序1,然后输入prod2和显示顺序2。这将在listview页面中添加2个listview项目。从一开始,用户可能希望prod1显示顺序1,prod2显示顺序2。以后使用时可能会改变主意,希望将prod2更改为显示顺序2,将prod1更改为显示顺序1,以便在其他页面中,prod2在prod1之前显示。这就是当用户单击listview页面中的一个l

有人能帮忙吗?请在浏览器上运行以下代码并查看发生了什么

每当产品列表以显示顺序输入listview时,就会出现我的问题。例如,用户输入prod1和显示顺序1,然后输入prod2和显示顺序2。这将在listview页面中添加2个listview项目。从一开始,用户可能希望prod1显示顺序1,prod2显示顺序2。以后使用时可能会改变主意,希望将prod2更改为显示顺序2,将prod1更改为显示顺序1,以便在其他页面中,prod2在prod1之前显示。这就是当用户单击listview页面中的一个listview项目时显示动态创建的详细信息页面的原因。在此详细信息视图页面中,用户可以更改号码并单击更改 按钮

如果在listview中输入prod1 1和prod2 2。 转到详细信息页面prod2并更改为4,这是程序第一次工作。 但是,如果转到详细信息页面prod1并更改为3,则更改函数无法获取要更新的值3,而是再次获取值4

我怎样才能解决这个问题


我将使用此网站的编辑模式逐段发布代码,以便您可以运行代码。

每当您导航到更改产品显示时,您都会将相同的详细信息页面附加到DOM中。下一行将返回您输入的第一个值,它将引用动态注入的第一个详细信息页面

var fd2 = $.trim($('.ui-page ui-page-theme-a ui-page-active, #doProduct2').val());
即使您插入一个新页面并导航到它,您也将在第一个动态页面中检索doProduct2的值

您的解决方案是通过删除以前的详细信息页面,在DOM中只保留一个详细信息页面

/* remove old page */
$("#details").remove();

/* inject new updated one */
newPage.html(function (index, old) {
    return old.replace(/ID/g, title).replace(/TITLE/g, title).replace(/ORDER/g, order);
}).appendTo($.mobile.pageContainer);

/* navigate to page */
$.mobile.changePage(newPage);

你好,奥马尔,非常感谢。你的回答是正确的。它解决了我挣扎了几天的问题。再次感谢。我不知道如何把这个问题标记为已回答。@BeiHuaXie我很高兴你的问题解决了。你可以在我答案的左边打上正确的记号。我不明白为什么它需要15个名声,我不需要投票支持。@BeiHuaXie你的问题现在被标记为已回答。15代表需要投票表决一个职位。通过适当参与社区活动,您可以赢得声誉: