2012-07-15 10 views
6

संभव डुप्लिकेट:
$(this) doesn't work in a functionjQuery - 'इस' चयनकर्ता कॉलबैक फ़ंक्शन के अंदर काम नहीं करता है

मैं पोस्ट jQuery में कोड को निकालने के लिए लिख रहा हूँ, के माध्यम से ही हटाने के किया जाता है 200 के बाद सर्वर बैक करने के बाद अनुरोध, मैं क्लाइंट-साइड पर इस पोस्ट को हटाना चाहता हूं।

$('.delete-post').click(function() { 
    $.post($(this).attr('href'), {}, function(data) { 
     $(this).closest('.post').remove(); 
    }); 
    return false; 
}); 

हालांकि, मैंने देखा है कि अंदर के फ़ंक्शन (डेटा) {...) चयनकर्ता 'यह' काम नहीं करता है। मुझे कक्षा '। पोस्ट' के साथ निकटतम $('.delete-post') div को हटाने की आवश्यकता है। इस समस्या का प्रबंधन कैसे करें? धन्यवाद!

उत्तर

10

$(this)click event में मौजूद है, लेकिन function(data) { क्लिक करें घटना rather callback function का हिस्सा नहीं है। तो बाद में उपयोग के लिए उदाहरण के लिए that के लिए कुछ चर में $ (यह) को सहेजें।

इस प्रयास करें:

$('.delete-post').click(function(e) { 
    e.preventDefault(); 
    var that = $(this); 
    $.post(that.attr('href'), { }, function(data) { 
     // $(this).closest('.post').remove(); 
     that.closest('.post').remove(); 
    }); 
}); 
+2

आप क्यों 'this' कॉलबैक में एक अलग मूल्य है, यह समझाने चाहिए। – jfriend00

+0

मैंने मुझे पहले से ही याद दिलाया है कि मुझे @ jfriend00 – Adil

+0

याद दिलाने के लिए धन्यवाद, अब मुझे बहुत कुछ मिला है! सरल और स्पष्ट) – f1nn

संबंधित मुद्दे