2010-04-26 11 views
6

ऐसा क्यों असफल करता तत्वों * लगता है ...jQuery: कैसे बिना * एक निश्चित वर्ग

$('div.contactAperson input').not('input.hadFocus').focus(function() { 
    $(this).attr('value', ''); 
}); 

... इसे बाहर सूंघ करने के लिए इनपुट की कि नहीं वर्ग .hadFocus मिला और उसके बाद का मतलब है जब उस सबसेट में से एक फोकस प्राप्त करता है तो उसे मूल्य को शून्य पर ज़प करना चाहिए।

अभी, इनपुट मान हमेशा ज़ेड हो रहे हैं - परीक्षण .not ('input.hadFocus') निष्पादन को रोकने में विफल रहा है।

Btw, ऊपर कोड पूर्ववर्ती निम्नलिखित कोड है, जो ठीक काम कर रहा है:

$('div.contactAperson input').focus(function() { 
    $(this).addClass('hadFocus'); 
}); 

किसी भी चतुराई के लिए धन्यवाद - चियर्स, -Alan

+0

की डुप्लिकेट::

कुछ इस तरह की कोशिश करो [मैं jQuery में किसी वर्ग के बिना सभी तत्वों का चयन कैसे कर सकते हैं?] (Http://stackoverflow.com/questions/2448051) – hippietrail

उत्तर

4
$('div.contactAperson > :input').not(':input.hadFocus').focus(function() { 
    $(this).attr('value', ''); 
}); 

सौभाग्य

+0

Tks, पता नहीं क्यों लेकिन यह संस्करण मूल्य को कभी भी साफ़ नहीं करता है। लेकिन कोड सुझाव के लिए tks, मैं इसे खरोंच दूर रखेंगे ... – Alan

5

आप तत्व की वर्तमान स्थिति के आधार पर चलाने के लिए हैंडलर की आवश्यकता है - जब यह बाध्य था तब राज्य नहीं था। आपको शायद live बाइंडिंग का उपयोग करने की आवश्यकता है।

$('div.contactAperson input:not(.hadFocus)').live('focus', function() { 
    $(this).attr('value', ''); 
}); 
+0

धन्यवाद, ऐसा लगता है कि यह होगा। अब इस परियोजना से संबंधित परियोजना को ढूंढना होगा। चीयर्स, -अलन – Alan

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