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

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

});

मुझे GetDeals() फ़ंक्शन में तर्क के रूप में पास करने की आवश्यकता क्या है ताकि मैं $(this) के साथ कुशलतापूर्वक उपयोग कर सकूं?

अग्रिम धन्यवाद!

उत्तर

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); 
} 
संबंधित मुद्दे