单击标记时不会触发我的函数。这是我的代码:
HTML:
<div data-role="footer">
<div data-role="tabstrip" id="tabs">
<a href="views/contacts.html" data-icon="home" id="home">Home</a>
<a href="views/settings.html" data-icon="settings" id="settings">Settings</a>
<a onclick="signOff()" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>
</div>
</div>
JavaScript的:
function signOff() {
console.log("something");
VCare.VCareWebService.signOff({cache:false,
callback:function(xml) { // invoke the service
// use jQuery to extract information we are interested in
console.log(xml);
}
});
}
答案 0 :(得分:1)
onClick
您不能拥有href
功能和有效<a>
属性。
将您的锚元素更改为:
<a onclick="signOff()" href="javascript:void(0)" data-icon="settings" id="contacts">Log Out</a>
如果您愿意,可以使用javascript重定向页面。
答案 1 :(得分:1)
您需要将A标记更改为
<a href="javascript:signOff();
window.location = "views/home.html" data-icon="settings" id="contacts">Log Out</a>
答案 2 :(得分:0)
另一种方法是确保onclick
返回false以阻止默认事件运行。
<a onclick="signOff(); return false" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>
或..
<a onclick="return signOff();" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>
function signOff() {
console.log("something");
VCare.VCareWebService.signOff({cache:false,
callback:function(xml) { // invoke the service
// use jQuery to extract information we are interested in
console.log(xml);
}
});
return false;
}
答案 3 :(得分:0)
我建议不要使用onclick方法。它不仅显然与默认的href操作冲突,而且它还可能导致一些轻微的视觉问题,点击元素的边缘等,可以调用函数而不会像在普通链接中那样突出显示文本
相反,请使用:
<a href="javascript:signOff()" data-icon="settings" id="contacts">Log Out</a>
然后,只需使用signOff
或类似
this.document.location.href = location
函数中以编程方式更改网页地址
编辑:它看起来像window.location效果更好。奥马尔+1,看起来他有相同的答案