我有一个常规 anchor 标记,其 href 属性设置为“#”。通常,这会阻止任何导航,但在 durandal 中它会将我导航到主视图。我怎样才能阻止它导航到该 View ? 我无法更改 html 和样式。它必须是那个 anchor 标记。但我可以给它绑定(bind)一个点击事件。有什么办法可以取消 anchor 点击事件中的导航吗?
问候
最佳答案
为其绑定(bind)点击事件并调用event.preventDefault()
<a href="#" id="someAnchor">Example</a>
$(function() {
$('#someAnchor').click(function(event) { event.preventDefault(); });
});
这将阻止浏览器传播点击事件,并且什么也不会发生。但在点击事件中你可以做任何你想要的逻辑。
如果您使用knockout绑定(bind)点击事件那么请refer to this stackoverflow post关于如何通过淘汰赛绑定(bind)来做到这一点。
编辑 ** 根据 Tyrsius 的评论,使用淘汰绑定(bind)来绑定(bind)点击事件是更好的做法。
因此,建议您这样做:
<a href="#" data-bind="click: clickHandler">ClickMe</a>
clickhandler = function (e) {
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
};
关于durandal - 防止 anchor 标记导航到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145960/