提琴:http://jsfiddle.net/cmw0s2rk/
function HandleTopNavClick($elem, pretext = "", replace = false, e) {
debugger;
e.preventDefault();
var href = $elem.href;
}
$("ul.check-it li a").on("click", HandleTopNavClick($(this), "clickhere_", true, event));
您知道为什么event
不继承该功能吗?
答案 0 :(得分:4)
您正在同步调用handleTopNavClick,然后将其结果传递到.on。相反,您想要创建一个函数并将其传递给.on,稍后将在事件中对其进行回调。
$("ul.check-it li a").on("click", function(event) {
HandleTopNavClick($(this), "clickhere_", true, event)
});
答案 1 :(得分:2)
您可能打算使用HandleTopNavClick
作为回调函数,但是,您将函数的返回值用作未定义的回调函数。
您可以仅将HandleTopNavClick
用作click事件处理程序的回调函数,并使用this
来引用该元素。
function HandleTopNavClick(e) {
debugger;
e.preventDefault();
var href = $(this).attr('href');
}
$("ul.check-it li a").on("click", HandleTopNavClick);
JSFiddle演示:http://jsfiddle.net/cmw0s2rk/8/
答案 2 :(得分:1)
类似于尼古拉斯,这可以通过箭头功能实现,有时可以读得更好。
$("ul.check-it li a").on("click", event => HandleTopNavClick($(this), "clickhere_", true, event));