Jquery event.preventDefault不使用shift单击
我只是想让用户为某个动作移动单击锚定标记。问题在于,在浏览器中按住shift键单击URL会在新窗口中打开链接。因此,我自然会使用Jquery event.preventDefault不使用shift单击,jquery,click,anchor,preventdefault,Jquery,Click,Anchor,Preventdefault,我只是想让用户为某个动作移动单击锚定标记。问题在于,在浏览器中按住shift键单击URL会在新窗口中打开链接。因此,我自然会使用event.preventDefault(),但在这种情况下,它在任何浏览器中似乎都不起作用。任何帮助都将不胜感激 下面是一个JSFIDLE: 代码如下: <a href="#" class="edit">shift-click here</a> <script> $('.edit').click(function (e) {
event.preventDefault()
,但在这种情况下,它在任何浏览器中似乎都不起作用。任何帮助都将不胜感激
下面是一个JSFIDLE:
代码如下:
<a href="#" class="edit">shift-click here</a>
<script>
$('.edit').click(function (e) {
if (e.shiftKey) {
e.preventDefault();
alert('you shift-clicked');
}
});
<script>
$('.edit')。单击(函数(e){
如果(如换档键){
e、 预防默认值();
警报(“您按下了shift键”);
}
});
您没有包含jQuery,因此没有调用您的单击处理程序
HTML
这是根据您需要的工作jQuery代码
$('.edit').click(function(e) {
if (e.shiftKey) {
alert("shift+click");
e.preventDefault();
}
});
$('.edit').click(function(e) {
e.stopPropagation();
e.preventDefault();
});
您没有在JSFIDLE中运行jQuery。一旦包括了这一点,您应该首先防止默认设置,然后检查shift键并运行必要的代码 您应该尽量避免StopperProgation,除非您确实打算停止DOM中冒泡的事件。但在这个例子中,这看起来不像你想要的 请看这里: 以及进一步阅读:
因为您删除了另一个问题:您的“完整代码”中没有阻止默认值的原因很简单: 脚本1006:应为“')”
_显示,第131行字符5 始终检查控制台是否有错误。它们是代码不起作用的首要原因
在本例中,您忘记了使用
)
关闭click()
函数调用。为什么要将其拆分为单独的事件?他说得对,jQuery没有包含在JSFIDLE中,因此单击永远不会绑定。谢谢。这确实很管用,所以你已经回答了我的问题。不幸的是,stopDefault()
在我的代码的完整上下文中仍然不起作用,所以我将在另一个问题中发布它。再次感谢你让我更进一步。
$('.edit').click(function(e) {
if (e.shiftKey) {
alert("shift+click")
}
});
$('.edit').click(function(e) {
if (e.shiftKey) {
alert("shift+click");
e.preventDefault();
}
});
$('.edit').click(function(e) {
e.stopPropagation();
e.preventDefault();
});
$('.edit').click(function (e) {
e.preventDefault();
if (e.shiftKey) {
alert('you shift-clicked');
}
});