Moja funkcja nie jest zwolniona po kliknięciu znacznika. Oto mój kod:
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);
}
});
}
4 odpowiedzi
Nie możesz mieć funkcji onClick
i prawidłowej atrybutu href
w <a>
. Zmień element kotwicy do:
<a onclick="signOff()" href="javascript:void(0)" data-icon="settings" id="contacts">Log Out</a>
Możesz przekierować stronę za pomocą JavaScript, jeśli chcesz.
Musisz zmienić swój znacznik
<a href="javascript:signOff();
window.location = "views/home.html" data-icon="settings" id="contacts">Log Out</a>
Innym sposobem jest upewnienie się, że twoje onclick
zwraca false, aby zatrzymać domyślne zdarzenie od uruchomienia.
<a onclick="signOff(); return false" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>
Lub..
<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;
}
Polecam nie korzystanie z metody OnClick. Nie tylko wydaje to najwyraźniej konflikt z domyślną obsługą HREF, ale może również powodować niewielkie kwestie wizualne, w których klikanie w marginesie elementu itp., Może zadzwonić do funkcji bez podświetlania tekstu sposobu, w jaki można się spodziewać w normalnym łączu .
Zamiast tego użyj:
<a href="javascript:signOff()" data-icon="settings" id="contacts">Log Out</a>
Następnie po prostu zmieniaj adres strony w funkcji signOff
, przy użyciu this.document.location.href = location
lub podobne
Edytuj: wygląda jak window.Location działa lepiej. +1 dla Omara wygląda na to, że ma tę samą odpowiedź