从函数到函数传递$(this)

时间:2012-10-18 09:47:28

标签: jquery function this

我希望能够声明一个可以与任何选择器或方法一起使用的函数,因此我认为它可以像下面那样完成,但它不起作用!

为什么? :)

$(document).ready(function() {

    $('img').hover(function(){
        imageClass();
    });

    function imageClass() {
        var thisClass = $(this).attr('class');
        console.log(thisClass)
    }

});

3 个答案:

答案 0 :(得分:6)

您可以将$(this)作为argument从悬停事件中传递,您只需要更改imageClass method to receive a parameter

$(document).ready(function() {

    $('img').hover(function(){
        imageClass($(this));
    });

    function imageClass(obj) {
        var thisClass = obj.attr('class');
        console.log(thisClass)
    }

});

答案 1 :(得分:0)

然而,这也将起作用:

$('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)
}

答案 2 :(得分:0)

您可以尝试jQuery.proxy。它允许您通过this

如果您无法理解,请告诉我。