Передать $ (this) в качестве аргумента? - PullRequest
7 голосов
/ 04 июня 2010
$(document).ready(function() {
    function GetDeals() {
    alert($(this).attr("id"));
}

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

});

Что мне нужно передать в качестве аргумента в функцию GetDeals(), чтобы я мог манипулировать с $(this)?

Заранее спасибо!

Ответы [ 2 ]

14 голосов
/ 04 июня 2010

Вы можете просто использовать функцию в качестве дескриптора события:

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

(обратите внимание, вы не используете () для вызова функции, поэтому сама функция передается функции live(), а не ее результату.

Или вы можете использовать Function.prototype.apply()

$('.filterResult').live("click", function(event) {
  GetDeals.apply(this);
});
4 голосов
/ 24 января 2012

Над решением работает и абсолютно никаких проблем с этим. Однако я полагаю, что лучшая модель здесь:

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


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