我正在开展一个cordova项目。我有一些有听众的链接,href被设置为"#"。
现在,在我的所有功能中,我提供事件并调用preventDefault()。
出于某种原因(在浏览器中访问应用程序时)。它仍然会导航到/#。 这导致浏览器打开一个新标签。
我之前使用了javascript:void(0),但它在windows phone(metro app)上抛出了错误列表。因为javascript:无效。
任何人都知道我应该如何解决这个问题? (我正在使用jQuery和简单的HTML5)。
e.g:
/**
* Toggle the menu
*/
toggleMenu: function(e) {
if (e) {
e.preventDefault();
}
App.Core.menuOpen ? App.Core.hideMenu() : App.Core.showMenu();
return false;
},
所以我们这样绑定事件,所以当它被动态添加时,它仍然有用。
$(document).on("click", ".header-menu", App.Core.toggleMenu);
带有一些条带的HTML
<div class="page" data-init="App.Functions.Purchase.init()">
<div id="panel-purchase" class="panel" data-init="App.SomeModule.init()">
<div class="panel-header">
<div class="panel-header-inner">
<a href="#" class="button header-menu"><span class="icon icon-menu"></span></a>
<div class="panel-header-title"><span>Some Title</span></div>
<span class="button dummy"></span>
</div>
</div>
...
答案 0 :(得分:0)
只要我没有得到更好的解决方案,现在我没有使用href
它是HTML5的标准,尽管有些网站抱怨它可以针对自己。它适用于混合应用程序,在这种情况下我从未见过它以自身为目标。
更好的解决方案总是更好,源中必须有一些令人讨厌的东西(它最初由第三方创建)。