javascript - $(this) 如何在全局范围内可用

标签 javascript jquery global-variables this local-variables

在 JQuery 中,$(this) 似乎只能在本地工作。

举一个简单的例子:

$(".someClass .type1").click(function(){
    $(".someClass .type1").html("<img src='image/2.png'>");
    $(this).html("<img src='images/img.png'>");
});

$(".otherClasses").click(function(){
    $(".otherClasses .type1").html("<img src='image/2.png'>");
    $(this).html("<img src='images/img.png'>");
});

理想情况下,我想编写这样的函数:

function changeImg () {
   $(this).html("<img src='images/img.png'>");
}

然后在jquery点击函数下调用changeImg(),例如:

$(".someClass .type1").click(function(){
        $(".someClass .type1").html("<img src='image/2.png'>");
        changeImg();
});

然而,这样一来,$(this)将是“未定义”的,而不是被点击的那个。有没有办法让它像全局变量一样可用?

谢谢!

最佳答案

this 作为参数传递给您的函数:

function changeImg (el) {
   $(el).html("<img src='images/img.png'>");
}

$(".someClass .type1").click(function(){
        $(".someClass .type1").html("<img src='image/2.png'>");
        changeImg(this);
});

关于javascript - $(this) 如何在全局范围内可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118393/

相关文章:

javascript - 无法获取设备的推送 token 。检查您的 FCM 配置是否有效

javascript - 理解 Javascript 代码片段

javascript - 如何将 css 添加到 jquery backstretch?

javascript - 在某些州隐藏侧边栏和导航栏

javascript - 查找输入位置和附近位置的商店并计算它们与搜索位置的距离

javascript - 这是重用 JS 函数的正确方法吗?

c - 外部声明和全局范围

javascript - 单击事件时使用 jQuery 在 Smarty 输入字段中动态主机名

global-variables - 如果全局变量不好,为什么每个 Web 框架都使用它们?

jquery - 如果从链接单击页面,如何自动滚动