[英]How to pass an event of a button click to a callback function
小提琴: 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
为何未延续到功能中吗?
您正在同步调用handleTopNavClick,然后将其结果传递到.on。 相反,您想创建一个函数并将其传递给.on,稍后将在事件中对其进行回调。
$("ul.check-it li a").on("click", function(event) {
HandleTopNavClick($(this), "clickhere_", true, event)
});
您可能打算将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/
与尼古拉斯类似,这可以通过箭头功能实现,有时可以读得更好。
$("ul.check-it li a").on("click", event => HandleTopNavClick($(this), "clickhere_", true, event));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.