Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消包装在<;中的锚元素上的鼠标向下事件(使用普通js);李>;_Javascript_Event Handling - Fatal编程技术网

Javascript 取消包装在<;中的锚元素上的鼠标向下事件(使用普通js);李>;

Javascript 取消包装在<;中的锚元素上的鼠标向下事件(使用普通js);李>;,javascript,event-handling,Javascript,Event Handling,我有以下标记: <ul> <li id="aCont"> <a href="http://test.com">test</a> </li> </ul> <script type="text/javascript"> document.getElementById("aCont").onmousedown= function (e) { //some Action } <script>

我有以下标记:

<ul>
 <li id="aCont">
  <a href="http://test.com">test</a>
 </li>
</ul>

<script type="text/javascript">
document.getElementById("aCont").onmousedown= function (e) {
 //some Action
}
<script>
document.getElementById(“aCont”).onmousedown=函数(e){ //一些行动 }
我没有使用
e.preventDefault()
e.stopPropagation()
成功,也没有使用
returnfalse
。这次活动有可能被取消吗


谢谢

假设您的目的是阻止对锚元素的单击导航到指定的URL,那么您需要使用“onclick”事件,而不是“onmousedown”

对于老式的
element.onsomeevent=
处理程序,只有非IE浏览器才能将事件对象作为参数传递给函数,而IE有一个
window.event
属性,因此您也需要考虑到这一点

同样,IE在阻止与事件相关联的默认操作时会做不同的事情:对于IE,将事件的
returnValue
属性设置为false,对于非IE调用
e.preventDefault()
(注意“provent”末尾的“t”-您在问题中拼写错误)和/或从处理程序返回false

结合所有这些:

document.getElementById("aCont").onclick = function(e) {
   // allow for IE, which doesn't pass the event object as a parameter
   if (!e) e = window.event;

   e.returnValue = false;
   if (e.preventDefault)
      e.preventDefault();

   return false;
}

(注意:您还将
e.stopPropagation()
拼写错误,但您不需要该方法来实现此目的-它会停止向父元素冒泡的事件,不会取消默认操作。)

糟糕的是,我不允许更改事件类型。您可以复制我函数的内容,并保留
onmousedown
事件,看看会发生什么。至少这样,您将处理不同浏览器取消事件的方式。我从未尝试过从
onmousedown
取消超链接导航,因为肯定
onclick
是正确的位置,但也许它会起作用-你只会在鼠标上下移动后得到一个点击事件,所以。。。(还有我的道歉:我刚刚注意到我把实际的单词
.onclick
从我的代码中删掉了,所以我刚刚编辑了它。)P.S.我应该提到的是,即使你用鼠标向下操作它,请注意,如果用户从键盘激活它,链接仍然有效。另一方面,鼠标单击或键盘“单击”将触发单击事件。