Jquery 将$(this)从一个函数传递到另一个函数
我希望能够声明一个可以与任何选择器或方法一起使用的函数,因此我认为可以像下面这样做,但它不起作用 这是为什么?:)Jquery 将$(this)从一个函数传递到另一个函数,jquery,function,this,Jquery,Function,This,我希望能够声明一个可以与任何选择器或方法一起使用的函数,因此我认为可以像下面这样做,但它不起作用 这是为什么?:) 然而,这也将起作用: $('img').hover(imageClass); function imageClass() { var thisClass = $(this).attr('class'); console.log(thisClass) } 还有一个选择: $('img').hover(imageClass); function imageClas
然而,这也将起作用:
$('img').hover(imageClass);
function imageClass() {
var thisClass = $(this).attr('class');
console.log(thisClass)
}
还有一个选择:
$('img').hover(imageClass);
function imageClass(e) {
var thisClass = $(e.target).attr('class');
console.log(thisClass)
}
然而,这也将起作用:
$('img').hover(imageClass);
function imageClass() {
var thisClass = $(this).attr('class');
console.log(thisClass)
}
还有一个选择:
$('img').hover(imageClass);
function imageClass(e) {
var thisClass = $(e.target).attr('class');
console.log(thisClass)
}
您可以将hover事件中的$(this)
作为参数传递给,只需更改imageClass方法以接收参数即可
$(document).ready(function() {
$('img').hover(function(){
imageClass($(this));
});
function imageClass(obj) {
var thisClass = obj.attr('class');
console.log(thisClass)
}
});
您可以将hover事件中的$(this)
作为参数传递给,只需更改imageClass方法以接收参数即可
$(document).ready(function() {
$('img').hover(function(){
imageClass($(this));
});
function imageClass(obj) {
var thisClass = obj.attr('class');
console.log(thisClass)
}
});
你可以试试。它将允许您通过此
如果你不明白,请告诉我。你可以试试。它将允许您通过此
如果您无法理解,请告诉我。$(obj)
是一种过激行为。只需obj
就足够了,您不需要在imageClass函数中再次使用$()包装obj,因为您已经将其作为jQuery对象传递了。它工作得很好:)-我还注意到并从$()中打开了obj,所以我对JS有一点了解,但还没有完全了解:)-非常感谢。您能告诉我将imageClass函数移到.ready函数之外的利弊吗?@afcdesign:没有任何显著的区别。除此之外,它在外部是不可用的-我不能说任何重要的..ready在文档的所有元素都准备好并且可以更多地访问时执行。正如zerkms所说的准备好了,在您从中调用它时没有明显的区别。ready$(obj)
是一种过度使用。只需obj
就足够了,您不需要在imageClass函数中再次使用$()包装obj,因为您已经将其作为jQuery对象传递了。它工作得很好:)-我还注意到并从$()中打开了obj,所以我对JS有一点了解,但还没有完全了解:)-非常感谢。您能告诉我将imageClass函数移到.ready函数之外的利弊吗?@afcdesign:没有任何显著的区别。除此之外,它在外部是不可用的-我不能说任何重要的..ready在文档的所有元素都准备好并且可以访问更多时执行。正如zerkms所说的准备好了,与您从中调用它没有显著的区别。在这种情况下,您甚至不需要$.proxy()
<代码>imageClass.call(此)代码>将完成这项工作。而$.proxy()
适用于需要通过预定义作用域传递函数引用的情况(这里不是这种情况)。在这种情况下,甚至不需要$.proxy()
<代码>imageClass.call(此)代码>将完成这项工作。然而,$.proxy()
适用于需要通过预定义范围传递函数引用的情况(这里不是这种情况)。