所以我有这个JS,当我运行代码时,我得到“e未定义” - 我缺少什么?
$('ul.result-filters > li a').click(toggleFilters());
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
答案 0 :(得分:9)
使用此:
$('ul.result-filters > li a').click(toggleFilters);
您传递的是toggleFilters()
的结果,而不是传递函数本身。
答案 1 :(得分:4)
$('ul.result-filters > li a').on('click', toggleFilters);
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
在函数之后添加括号时,立即执行,并将结果传回。要仅引用该函数并在单击时调用它,请删除括号。
这也会使事件可用于toggleFilters
函数!
答案 2 :(得分:1)
您正在调用函数而不是传递处理程序名称以进行单击。从切换过滤器删除括号()更改
$('ul.result-filters > li a').click(toggleFilters());
要
$('ul.result-filters > li a').click(toggleFilters);
答案 3 :(得分:1)
始终可以e = e || window.event
确保您有活动。
答案 4 :(得分:0)
您需要使用函数名称而不是函数调用toggleFilters()。
$('ul.result-filters > li a').on('click', toggleFilters);
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
由于