gpt4 book ai didi

javascript - jQuery 编码标准和最佳实践(分离事件和函数)

转载 作者:行者123 更新时间:2023-11-28 01:28:10 25 4
gpt4 key购买 nike

我一直在阅读this article ,这建议将事件与函数分开。但我该怎么办e.preventDefault()像这样吗?

$("#myLink").on("click", function(){...}); // BAD


// GOOD
function myLinkClickHandler(){...}
$("#myLink").on("click", myLinkClickHandler);

最佳答案

在我看来,如果满足以下条件,建议先定义一个函数,然后将其分配为事件监听器:

  1. 同一函数可以用作另一个事件的事件处理程序。在这种情况下,内联定义处理程序意味着重复代码。
  2. 您希望能够轻松删除该特定事件处理程序。在这种情况下,内联定义事件处理程序意味着要删除它,您可能必须将 .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 不会知道您使用了哪种方法。

关于javascript - jQuery 编码标准和最佳实践(分离事件和函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com