0

如果用户按下链接(而不是点击),我需要调用一个事件(例如 - 显示警报) - 我不希望它将他重定向到另一个页面。换句话说 - 当用户单击链接时 - 一切都照常,但是当用户按下链接时,只会发生事件(显示警报)并且用户将留在我的页面中。这可能吗?

通过说按下我的意思是用户按下链接至少一秒钟。

谢谢。

4

4 回答 4

0

定义

您可能想要使用mousedownorkeypress事件,具体取决于您的意思。(后一种情况可能涉及检查事件以确保它是使用的回车键)

于 2010-01-07T12:20:10.943 回答
0

我的理解是你想要:

用户按下链接 -> 触发操作,但不重定向浏览器 用户单击链接(将鼠标悬停在按下按钮的同一对象上) -> 重定向到不同的页面

以下代码可能会有所帮助

<html>
<head>

    <script type="text/javascript">
function mouse_pressed(){
    alert('pressed button');
}
function goToLink(url){
    window.location = url;
}
</script>
</head>
<body>

<label onclick="goToLink('http://www.google.com');" onmousedown="mouse_pressed();" >text</label>
<body>
</html>
于 2010-01-07T12:44:55.507 回答
0

完善您的问题后,此代码将执行您要查找的操作:

<script>
var timeout;
function onMouseDown(){
    timeout = window.setTimeout("alert(1)",1000);
}
function onMouseUp(){
    window.clearTimeout(timeout);
}
</script>

<a href="#" onmousedown="onMouseDown();return false;" onmouseup="onMouseUp();return false;">click</a>

笔记:

  • return false导致 href 不被执行,
  • 超时设置和清除确保按下不到一秒的时间不会触发事件

如果用户在链接上按住鼠标超过 1 秒(1000 毫秒),这将触发警报。

于 2010-01-07T15:09:14.390 回答
0

在 Jquery 中,您可以通过简单的方式做到这一点。

$("a").live('click',function(){
event.preventDefault();
});
于 2012-10-23T06:59:09.613 回答