我有一个链接按钮,当第一次进入我的管理作业页面时(在大多数情况下)工作正常并按预期触发弹出窗口:
<a href="#dialogCompletion" data-rel="popup" data-position-to="window" data-transition="pop" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-calendar ui-btn-icon-left ui-btn-b" aria-haspopup="true" aria-owns="dialogCompletion" aria-expanded="false">Job Complete</a>
单击时,我的弹出窗口启动,显示日期和按钮,我可以更改日期,单击按钮,调用javascript函数,调用location.href
,重新加载具有特殊值的同一页面在查询字符串上,我的数据库已更新。
但是,当我按照一组非常常见的步骤操作时,该按钮不起作用且弹出窗口无法打开:
如果我刷新页面,一切都很好,我可以点击相同的按钮,然后弹出窗口。或者,如果我导航到主页面,重新加载浏览器,然后导航到管理作业,它也可以。但是在JQM页面转换过程中必然会发生某些事情,这会破坏我的按钮的可点击性,因此它无法启动弹出窗口。任何强制页面刷新都会清除它并解决问题,我可以再次成功启动弹出窗口。
这真的很糟糕,因为我无法告诉我的用户“每次按钮都不会点击时重新加载页面。”查看问题的步骤是非常常见的步骤,而非边缘情况。
我注意到的一件事:当我的链接按钮上的aria-expanded
属性为“false”时,可以单击该按钮(实际按下手指),然后弹出窗口。但是当弹出窗口无法启动时(根据上面重复的步骤),我注意到aria-expanded
属性设置为“true”。所以起初我认为修复很容易。我只是使用jquery将该属性设置为false,它将起作用。但事实并非如此。在Chrome开发工具中,我将其设置为false并尝试点击它,但没有成功。
这看起来好像是JQM中的一个错误,这很可怕,因为它是这样的常见/核心功能。但我很乐意了解我可以做的任何类型的黑客/修复工作。提前谢谢。
答案 0 :(得分:0)
我能找到的唯一解决方案是在锚元素上禁用ajax:
<a href='ManageJob.php?JobID=$jobID' data-ajax='false'>
这会杀死很酷的页面转换,但现在至少所有按钮都在目标页面上工作。我期待JQM解决这个巨大的错误。