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