gpt4 book ai didi

javascript - 不使用匿名函数并有权访问 this 和 e

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

我想将脚本放在一个单独函数的匿名函数中,以便我可以在各种元素上使用它,而无需重复代码。该脚本需要能够访问 thisemyID1 在尝试使用单独的函数之前正在使用匿名函数。 myID2 有效,但我感觉这不是首选方式。 myID3 可以访问 this,但我不知道如何访问 e。这是如何完成的?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Testing</title>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
function otherFunction2(e,This){console.log(e,This);}
function otherFunction3(){console.log(this);}
$(function(){
$('#myID1').on("click", "a.myClass", function(e){console.log(e,this);});
$('#myID2').on("click", "a.myClass", function(e){otherFunction2(e,this);});
$('#myID3').on("click", "a.myClass", otherFunction3); //Can't access e
});
</script>
</head>

<body>
<div id="myID1"><a href="javascript:void(0)" class="myClass">Click Me</a></div>
<div id="myID2"><a href="javascript:void(0)" class="myClass">Click Me</a></div>
<div id="myID3"><a href="javascript:void(0)" class="myClass">Click Me</a></div>
</body>
</html>

最佳答案

要让otherFunction3()访问e,只需在参数列表中声明e即可。该参数由 jQuery 自动传递,即使它没有声明:

function otherFunction3(e) { ... }

对于#myID2,您需要.call() otherFunction2:

$('#myID2').on("click", "a.myClass", function(e) {
otherFunction2.call(this, e);
});

此时,otherFunction2 中的 this 变量将照常设置,并且您可以删除传递的 This 参数。

关于javascript - 不使用匿名函数并有权访问 this 和 e,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16283692/

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