如果用户按下链接(而不是点击),我需要调用一个事件(例如 - 显示警报) - 我不希望它将他重定向到另一个页面。换句话说 - 当用户单击链接时 - 一切都照常,但是当用户按下链接时,只会发生事件(显示警报)并且用户将留在我的页面中。这可能吗?
通过说按下我的意思是用户按下链接至少一秒钟。
谢谢。
如果用户按下链接(而不是点击),我需要调用一个事件(例如 - 显示警报) - 我不希望它将他重定向到另一个页面。换句话说 - 当用户单击链接时 - 一切都照常,但是当用户按下链接时,只会发生事件(显示警报)并且用户将留在我的页面中。这可能吗?
通过说按下我的意思是用户按下链接至少一秒钟。
谢谢。
定义按。
您可能想要使用mousedown
orkeypress
事件,具体取决于您的意思。(后一种情况可能涉及检查事件以确保它是使用的回车键)
我的理解是你想要:
用户按下链接 -> 触发操作,但不重定向浏览器 用户单击链接(将鼠标悬停在按下按钮的同一对象上) -> 重定向到不同的页面
以下代码可能会有所帮助
<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>
完善您的问题后,此代码将执行您要查找的操作:
<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 毫秒),这将触发警报。
在 Jquery 中,您可以通过简单的方式做到这一点。
$("a").live('click',function(){
event.preventDefault();
});