如果我的jQuery Mobile应用程序中有链接,请将其设为.button();
的按钮。如果我点击文本(按钮的中心),它将不会抛出事件"点击"。
这是一个例子: http://jsfiddle.net/9rZHg/
运行此脚本,并尝试瞄准文本。警报弹出窗口不会显示。只有当您点击按钮的其他部分时,它才会起作用。
在设备上进行测试时也会出现同样的情况。
是否有一种简单的方法可以避免这种情况,或者我是否必须在我的应用中使用<button>
标记?
谢谢
答案 0 :(得分:5)
jQuery Mobile项目的开发人员,这里。
虽然上面的修补程序暂时可以暂时解决问题,但基本问题是button()
插件适用于button
元素和输入。添加data-role="button"
属性或调用buttonMarkup()
插件可以防止此问题。
答案 1 :(得分:2)
我之前没有创建过这样的按钮,但问题在于<a>
元素的z-index。如果您将以下CSS添加到您的页面,那么您将能够单击该按钮的任何部分以触发click
事件:
/*place the hidden link on top of the button UI*/
.ui-btn-hidden {
z-index : 2;
}
如果您在data-role="button"
标记上使用<a>
,则不会发生此问题:
<a href="" data-role="button">A tag w/ data-role="button"</a>
以下是这两种解决方案的解决方案:http://jsfiddle.net/jasper/9rZHg/1/