2012-01-11 16 views
5

a.nodeName अपरिभाषित हैa.nodeName अपरिभाषित Jquery त्रुटि

मैं इस ऊपर देखा है, लेकिन स्पष्टीकरण मुझे बिल्कुल स्पष्ट नहीं मालूम था है।

function deleteThisRow() { 
    $(this).closest('tr').fadeOut(400, function(){ 
     $(this).remove(); 
    }); 
} 
<tr> 
    <td>blah blah blah</td> 
    <td> 
     <img src="/whatever" onClick="deleteThisRow()"> 
    </td> 
</tr> 
+1

अंदर 'deleteThisRow',' 'this' window' संदर्भित करेंगे, न कि चित्र। आप इवेंट हैंडलर को jQuery से क्यों नहीं बांधते? –

उत्तर

14

अपने कार्य तत्व है जिस पर क्लिक किया गया था का उल्लेख नहीं करता में this कीवर्ड। डिफ़ॉल्ट रूप से यह डीओएम में उच्चतम तत्व का संदर्भ देगा, जो window होगा।

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

<tr> 
    <td>blah blah blah</td> 
    <td><img src="/whatever"></td> 
</tr> 
$("tr td img").click(deleteThisRow); 

function deleteThisRow() { 
    $(this).closest('tr').fadeOut(400, function() { 
     $(this).remove(); 
    }); 
} 
+0

दरअसल, ऐसा लगता है कि इस त्रुटि का मतलब है कि आपने $ (यह) गलत तरीके से उपयोग किया था। इस मामले में, मैं एक समारोह को कॉल करने की कोशिश कर रहा था जिसे मैंने लिखा था कि इसे उस घटना के बाहर किसी विशेष घटना से बुलाया जाएगा। – neminem

+1

हिंसक रूप से, कुछ साल बाद, इसे भूल गए, मैंने वही बात फिर से की, यह बहुत उपयोगी टिप्पणी मिली, इसे ऊपर उठाने के लिए चला गया, और नहीं कर सका, क्योंकि यह पता चला कि मैं इसे लिखने वाला था। धन्यवाद, खुद! : डी – neminem

1

प्रयास करें:

$(document).ready(function() { 
    $("img").click(function() { 
     $(this).closest('tr').fadeOut(400, function(){ 
      $(this).remove(); 
     }); 
    }); 
}); 
संबंधित मुद्दे