在 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/