我有一个包含许多页面的jQM应用程序,我将它移至jQM 1.4.我正在使用1.4建议的新小部件/方法,删除所有已弃用的代码.
考虑一个包含以下代码的页面:
$(document).on('pagecreate', '#admin-edit-location', function(event, ui) {
$('.edit-msg-groups', this).on('click', 'a', function () {
$('<div class="ui-input-text ui-body-inherit ui-corner-all ui-mini ui-shadow-inset"><input type="text" name="message_group[]" placeholder="Pool, Classes etc." data-mini="true"></div>').insertBefore($(".mg-btn-add"));
});
});
Run Code Online (Sandbox Code Playgroud)
如果我转到'#admin-edit-location'页面,然后naviagate在其他地方,然后返回'#admin-add-location'页面并单击该按钮...它会插入div两次.如果我再次离开页面并稍后返回,则单击它插入3次的按钮等.
我正在寻找防止这种情况发生的方法.我将所有页面都放在单独的文件中.
编辑:点击事件的示例代码
$(document).on("pagecreate", "#view-wellness-tips", function (){
var container = $('#admin-errors');
$("#add_wellness_tip_form").validate({
errorContainer: container,
errorLabelContainer: $("ul", container),
wrapper: 'li',
meta: "validate",
errorPlacement: function(error, element) {
error.insertAfter($(element).parent());
}
});
$('#add-new-tip').off('click').on('click', function (event) {
var valid = $("#add_wellness_tip_form").valid();
if(valid) {
$('#add-tip').popup("close");
$.mobile.loading("show");
$.post("admin.php?v=wellness&x=add", $('#add_wellness_tip_form').serialize() , function(data) {
$.mobile.loading("hide");
if(data == 1) { //success
jqmRedirect("/admin.php?v=config&t=wellness-tips&newtip=true"); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个jQuery Mobile Web App,公司将能够向某些用户组发送消息(基于他们的个人资料首选项).
我正在讨论什么是每个用户阅读最新消息时最有效的标记方式.我已经考虑过使用会话来尝试跟踪他们上次打开消息页面的时间,并将其与消息的发布时间进行比较.我还考虑了一个带有message_id和user_id的表,在打开页面时将每个表标记为已读.
我认为两者都有效,但我试图平衡利弊.保留在数据库中将允许我保留历史记录(特别是如果我添加时间戳列以了解他们何时阅读消息),但如果由于表大小而导致应用程序性能受损,则可能不值得它.该应用程序可能拥有成千上万的用户.
我应该提到的一件事是,用户可能会在多个设备上使用该应用程序,并且该应用程序将具有非常长的会话时间,可能允许用户保持登录数月.我喜欢这样的想法:如果他们在一台设备上读取它,那么它会在所有设备上标记它,这可能会使会话难以使用,对吧?