将$(this)作为参数传递?

时间:2010-06-04 08:07:22

标签: javascript jquery this

$(document).ready(function() {
    function GetDeals() {
    alert($(this).attr("id"));
}

$('.filterResult').live("click", function(event) {
    GetDeals();
});

});

我需要在函数GetDeals()中作为参数传递什么才能使用$(this)进行操作?

提前致谢!

2 个答案:

答案 0 :(得分:14)

您可以将该功能用作事件句柄:

$('.filterResult').live("click", GetDeals);

(请注意,您不使用()来调用该函数,因此函数本身将传递给live()函数,而不是其结果。

或者您可以使用Function.prototype.apply()

$('.filterResult').live("click", function(event) {
  GetDeals.apply(this);
});

答案 1 :(得分:4)

以上解决方案有效,绝对没有问题。不过我认为这里有一个更好的模式:

$('.filterResult').live("click", function(event) {
    GetDeals($(this));
});


function GetDeals(linkObj) {
    var id = $(linkObj).attr("id");
    console.log(id);
}