好吧,不可否认,这里有很多词,但这是我以前从未见过的一个问题,而且非常特别。因此,阅读可能值得。
我有一个动态生成Listviews的页面,以响应从$ .mobile.autocomplete点击的链接。
列表视图有两种类型的<li>'s
,并且相应地为主题,并且相应地设置或不设置类
让我们称他们为l-1和l-2。
当我点击 l-1 时,应该发生的是,该listitem切换一个类,该类给出了所选项目的外观,类似于$ .ui.selected - 并且只选择了一个每个列表允许项目。
这可以使用基本的jQuery轻松完成。
单击 l-1 时还应该发生的事情是,ajax调用是否向服务器发送特定值,以及回调函数突出显示成功的页脚文本为绿色,如果有,则为红色是一个错误。
单击 l-2 时应该发生的事情是,该列表被另一个列表替换,该列表是此特定层次结构的下一级别。
实施起来有点棘手,但是一旦我弄明白,就没有什么不是直截了当的。它的工作......有点像。
这是奇怪的事情。如果我转到页面一次,选择一个项目,然后完成上面的步骤,一切都按预期工作。 (我们将在这里查看 l-1 )。我可以根据自己的喜好自动生成多次生成列表视图,单击 l-1 ,应用样式,ajax成功触发,元素突出显示,瞧!我很开心,鼓励自己背对着自己。
然而 ,这就是怪异的开始 - 让我们说我离开页面回到主页(不是使用后退按钮,但是只是一个简单的jQuery Mobile链接),然后在那里,我点击链接把我带回这个页面,我带回来了。假设此页面名为 Page-2 。在 Page-2 上,事情开始很好:我使用自动完成生成列表,但是当我点击 l-1 项时,会发生以下情况(或不发生) :
如果我离开并再次回来,同样的事情会发生,除了,
这种模式以下列方式继续(大概有一段时间 - 我尝试了8次):
您可以通过右键单击并在新标签页中选择打开,以全新大小的标签打开图像。
任何洞察力?
更新:美国东部时间9/27/2012,美国东部时间下午1点05分。
我修复在偶数页面访问时不会将样式应用于单击按钮的问题,但我不禁觉得修复原因只是修复,因为潜在的问题。也许我的解决方案修复它的事实将更好地解决问题。
解决方案是将按钮的样式从ajax调用之前移动到回调,因此在ajax 请求完成之后才会应用样式。
答案 0 :(得分:0)
好吧 - 好吧,我想这对于任何人花时间阅读都太久了。我找到了一个解决方案,但我认为解决方案并没有解决问题的核心。解决方案是在调用重复的ajax后直接添加$ .fn.event.stopPropagation。
为什么这应该有助于解决这个问题。我唯一能想到的就是会产生这个问题,并且我的解决方案就是每次调用pageInit时都会以某种方式调用它(无论我在哪里绑定它,结果都是一样的,即我尝试过pageLoad,pageShow等)该函数被克隆并附加到不断增长的函数的末尾,该函数一直与pageInit绑定。
当然这没有任何意义,而且我从来没有在其他地方发生这种情况,所以我不知所措,但是,现在,无论如何,它已被修复,并没有发现明显的不利影响。