嘿我有一个jquery函数,它在一个锚的onclick事件上触发,该函数如下:
function dropDown(subid, e) {
e.preventDefault();
var sub = '#' + subid;
// hide all submenus first
$('.subnav').css({'display' : 'none'});
//Show the Current Subnav
$(sub).css({'display' : 'block'});
}
这就是我要触发它的方式:
<a href="#!" onclick="dropDown('sn_cities')" >Cities</a>
但是我收到此错误:e is undefined
我想取消锚链接的默认onclick事件,任何帮助都将不胜感激。
答案 0 :(得分:16)
您没有将事件对象(或任何内容)传递给函数的e
参数。试试这个:
onclick="dropDown('sn_cities',event);"
我倾向于完全失去内联JS:
<a href="#!" data-dropDown="sn_cities">Cities</a>
$(document).ready(function() {
$("a[data-dropDown]").click(function(e) {
e.preventDefault();
// hide all submenus first
$('.subnav').hide();
//Show the Current Subnav
$('#' + $(this).attr("data-dropDown")).show();
});
});
答案 1 :(得分:0)
function dropDown(subid) {
var sub = '#' + subid;
// hide all submenus first
$('.subnav').css({'display' : 'none'});
//Show the Current Subnav
$(sub).css({'display' : 'block'});
}
<a href="#!" onclick="dropDown('sn_cities'); return false;" >Cities</a>
作为旁注。不建议使用内联javascript。为清楚起见,请将脚本保存在外部文件中。