<p><a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false">VERIFY</a></p>
我正在使用上面的代码,这是一个带有onClick()设置的jQM按钮。调用onclick并执行doSomething()但在此之后,jQM显示“错误加载页面”消息。
我怎么能抑制错误?在这种情况下,我想要jQM按钮,但不希望它改变页面。
由于
答案 0 :(得分:44)
由于您使用的是jQuery,我建议您使用jQuery来连接您的事件。据说使用e.preventDefault();
和e.stopImmediatePropagation();
应该阻止jQuery mobile对<a/>
执行默认操作。
$("#verify").click(function (e) {
e.stopImmediatePropagation();
e.preventDefault();
//Do important stuff....
});
更新
使用现有标记的更好方法是简单地将rel="external"
添加到<a/>
并onclick
应该正确行事。
<p>
<a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a>
</p>
这将有效,因为jQuery Mobile会将链接视为普通<a/>
标记,返回false只会停止默认操作。
答案 1 :(得分:6)
我认为您的问题是您的按钮上有多个操作并且正在使用锚标记。单击按钮时,您将调用页面以转换到index.html和onClick事件。
<a
href="index.html" <-- go to index.html
data-role="button"
data-icon="arrow-r"
data-iconpos="right"
data-theme="a"
onclick="doSomething(); return false"> <-- Click event
VERIFY
</a>
可能会尝试(可能需要删除/添加其他一些属性)
<input
type="button"
name="verify"
id="verify"
data-icon="arrow-r"
data-iconpos="right"
data-theme="a"
value="VERIFY" />
现在添加点击事件
$('#verify').click(function() {
alert('Button has been clicked');
});
答案 2 :(得分:0)
我认为你应该在锚标记中追加data-ajax="false"
..
因为在jQuery mobile中,页面转换由AJAX完成,并用于页面转换
一定是假的..
答案 3 :(得分:-1)
使用Jquery live Function。这对我来说非常有用