2010-06-04 3 views
7
$(document).ready(function() { 
    function GetDeals() { 
    alert($(this).attr("id")); 
} 

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

});

Was muss ich als Argument in der Funktion GetDeals() übergeben, damit ich mit $(this) manipulieren kann?

Vielen Dank im Voraus!

Antwort

14

Sie könnten nur die Funktion als Ereignis-Handle verwenden:

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

(bitte beachten Sie, dass Sie nicht verwenden die () die Funktion aufgerufen werden, so dass die Funktion selbst in die live() Funktion wird, übergeben nicht das Ergebnis.

Oder Sie Function.prototype.apply()

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

danke, funktionieren beide Lösungen :) –

4

Above Lösung funktioniert und absolut keine Probleme nutzen können damit. Aber ich glaube, ein besseres Muster ist hier:

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


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