gpt4 book ai didi

javascript - 在 Javascript 中将 "This"放入命名空间

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

我确信这应该是一个简单的问题,但我仍在学习,所以这里是:

我有一些代码可以在单击时运行一个函数,将单击的元素的 ID 分配给一个变量,但我不知道如何将“this.id”值传递到命名空间而不创建全局变量(我认为很糟糕)。

<script>
fsa = (function() {

function GetTemplateLoc() {
templateId = document.activeElement.id;
alert(templateId + templateId2);
}


return {
GetTemplateLoc: GetTemplateLoc,
}

})();

//call the functions
$(document).on('click', '.template', function () {
fsa.GetTemplateLoc();
});
</script>

和带有随机图片的 HTML:

<img id="template-1" class="template" src="http://fc02.deviantart.net/fs70/f/2010/028/c/b/cb21eda885b4cc6ee3f549a417770596.png"/>
<img id="template-2" class="template" src="http://fc02.deviantart.net/fs70/f/2010/028/c/b/cb21eda885b4cc6ee3f549a417770596.png"/>

最佳答案

以下内容可行:

var fsa = (function() {
function GetTemplateLoc() {
var templateId = this.id;
alert(templateId);
}
return {
GetTemplateLoc: GetTemplateLoc,
}
})();

//call the functions
$(document).on('click', '.template', fsa.GetTemplateLoc);

jQuery 通常调用您作为事件处理程序传递的函数,并将 this 设置为与事件关联的 DOM 对象。

在这种情况下,它将调用 GetTemplateLoc() 并将 this 设置为 .template 元素,因此您可以使用 this 直接在函数中,不需要传递任何参数。

重要提示:始终使用var声明变量。 JavaScript 没有自动的变量函数局部作用域,即每个没有 var 声明的变量都是全局的,无论你在哪里声明它。换句话说,忘记 var 会被视为错误。

关于javascript - 在 Javascript 中将 "This"放入命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794166/

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