Javascript jQuery可以';不要将onmousedown应用于锚定标签
我有一个这样的导航菜单Javascript jQuery可以';不要将onmousedown应用于锚定标签,javascript,jquery,anchor,onmousedown,Javascript,Jquery,Anchor,Onmousedown,我有一个这样的导航菜单 <ul id="nav"> <li> <a id="firstLink" href="#"> Link 1 </a> </li> <li> <a id="secondLink" href="#"> Link 2 </a> </li> <li> <a id="thirdLink" href="#"> Link 3 </a> <
<ul id="nav">
<li> <a id="firstLink" href="#"> Link 1 </a> </li>
<li> <a id="secondLink" href="#"> Link 2 </a> </li>
<li> <a id="thirdLink" href="#"> Link 3 </a> </li>
<li> <a id="fourthLink" href="#"> Link 4 </a> </li>
</ul>
我的问题是,如果我将事件处理程序内联,那么脚本可以工作,并且不会出现任何问题
<li> <a href="#" id="firstLink" onmousedown="doSomething()"> Link 1 </a> </li>
另一方面,如果我使用外部文件,如上所示,什么也不会发生,Chrome会返回未捕获的TypeError:Object[Object Object]在mousedown上没有方法
,Firefox和Firebug会返回我$(“#firstLink”)。onmousedown不是一个函数
。我不明白,我做错了什么
$('#firstLink').onmousedown(doSomething());
应该是
$('#firstLink').mousedown(doSomething);
您可以通过执行以下操作来防止默认事件:
$('#firstLink').onmousedown(function(e){
e.preventDefault();
// do something
});
文件
但您可能希望使用´。单击()´,而不是鼠标向下。这是鼠标向下,而不是鼠标向下
$(document).ready(function() {
$('#firstLink').mousedown(doSomething());
[ ... ]
});
您还可以使用“on”事件处理程序。从jQuery1.7开始,这是正确的连接方式
事件-它替换bind()、delegate()和live()
谢谢你,我快疯了!!如果
doSomething()
接受参数怎么办?是否允许在调用函数时传递它们,或者我需要写下:$('#firstLink').mousedown(function(){doSomething(par1,par2);})代码>@hourted85,你需要把它写下来,链接你的例子。
$(document).ready(function() {
$('#firstLink').mousedown(doSomething());
[ ... ]
});
$(document).ready(function() {
$('#firstLink').on("mousedown", doSomething());
});