gpt4 book ai didi

javascript - 使用 hashbang 锚定,preventDefault

转载 作者:行者123 更新时间:2023-11-28 06:32:51 26 4
gpt4 key购买 nike

我正在开展一个 Cordova 项目。我有一些带有监听器的链接,href 设置为“#”。

现在,在我的所有函数中,我提供事件并调用 PreventDefault()。

由于某种原因(在浏览器中访问应用程序时)。它仍然会导航到/#。这会导致浏览器打开一个新选项卡。

我之前使用过 javascript:void(0) ,它工作得很好,但它在 Windows Phone(Metro 应用程序)上抛出了一个错误列表。因为 javascript: 无效。

有人知道我应该如何解决这个问题吗? (我使用 jQuery 和简单的 HTML5 来实现这一点)。

例如:

/**
* Toggle the menu
*/
toggleMenu: function(e) {

if (e) {
e.preventDefault();
}

App.Core.menuOpen ? App.Core.hideMenu() : App.Core.showMenu();
return false;
},

所以我们像这样绑定(bind)事件,所以当它动态添加时它仍然有效。

$(document).on("click", ".header-menu", App.Core.toggleMenu);

带有一些 strip 的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>
...

最佳答案

只要我没有得到更好的解决方案,目前我不使用 href

它是 HTML5 中的一个标准,尽管有些网站提示它可能以自身为目标。它对于混合应用程序来说效果很好,在这种情况下我从未见过它针对自身。

更好的解决方案总是更好,源代码中一定有一些令人讨厌的东西(它最初是由第三方创建的)。

关于javascript - 使用 hashbang 锚定,preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34544171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com