我一直在阅读this article,建议将事件与功能分开。但我如何e.preventDefault()
喜欢这个?
$("#myLink").on("click", function(){...}); // BAD
// GOOD
function myLinkClickHandler(){...}
$("#myLink").on("click", myLinkClickHandler);
答案 0 :(得分:1)
在我看来,如果出现以下情况,建议先定义一个函数,然后将其指定为事件监听器:
.off
方法与事件命名空间一起使用,以避免删除可能附加到同一对象和事件的其他事件处理程序的风险但是如果你只是设置一个不会被重用的事件处理程序,我会将它定义为内联,因为,至少对我来说,它可以更容易地跟踪执行哪些代码作为对事件的响应
无论如何,如果你想访问jQuery传递给事件处理程序的Event
对象,无论你使用什么方法,都可以轻松完成:
//inline
$('#myLink').on('click', function(e) { e.preventDefault(); });
//previous function:
function linkClickHandler(e) {
e.preventDefault();
}
$('#myLink').on('click', linkClickHandler);
jQuery总是将Event
对象传递给处理程序,定义函数的位置无关紧要。实际上,jQuery不知道你使用了哪种方法。