是否有一种很好的方法可以在dom节点上启用“在新窗口中打开链接”浏览器菜单选项,而无需点击链接?

时间:2015-08-24 05:05:46

标签: javascript html javascript-events

我希望复杂的dom节点具有“在新窗口中打开链接”上下文菜单选项,就像您使用任何标准< a>一样。标记链接。但我不希望dom节点在单击时打开该链接。我有什么选择?

我现在正在做的选择给我带来了麻烦。我目前正在< a>上设置点击处理程序。调用event.preventDefault()的节点。这样做的问题在于它可以防止< a>内部的所有内容的默认设置。标签。例如,如果我有一个复选框,则通过鼠标单击将无法选中该复选框。我可以通过各种方式来解决问题(通过在正确的位置使用stopPropagation()),但这令人难以置信的混乱,并且可能会浪费我和我的团队未来的时间。这样做是否有一种不太常见的方式?

我拥有的html类型示例:

<a href="www.whatever.ninja">
  <input type='checkbox'/>
  <div contenteditable="true">Your cursor could be |here!</div>
  <div>More content...</div>
</a>

1 个答案:

答案 0 :(得分:0)

我要在&lt; a&gt;中添加一个类。标记,然后使您的preventDefault调用仅适用于具有该类的元素。这样,您可以设置样式,使其看起来不像链接。你在使用像jQuery这样的东西吗?你可以这样做:

$(document).ready(function() {
    $('a.non-clickable').click(function() {
        $(this).preventDefault();
    });
});

然后在你的HTML中:

<a href="mylink" class="non-clickable">Some link text</a>