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

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

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

我需要在函数 GetDeals() 中传递什么参数才能操作 $(this)

谢谢您提前的帮助!

2个回答

14

您可以将该函数直接用作事件处理程序:

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

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

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

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

4
上面的解决方案可行,没有任何问题。然而,我认为这里有一个更好的模式:
$('.filterResult').live("click", function(event) {
    GetDeals($(this));
});


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接