में jQuery ब्लर इवेंट दो बार निकाल दिया गया मैंने इनपुट फ़ील्ड के साथ एक सरल 'अनंत' फ़ॉर्म बनाया। हर बार जब एक खाली इनपुट केंद्रित होता है तो यह एक नया बनाता है, और खाली इनपुट फ़ील्ड के धुंध पर, फ़ील्ड हटा दिया जाता है।क्रोम
देखें example here
मैं निम्नलिखित कोड का उपयोग यह सब करने के लिए होती हैं:
var $input = $('<div/>').html($('<input/>').addClass('value'));
$('form').append($input.clone());
$('form').on('focus', 'input.value', function(e) {
// Add new input if the focused one is empty
if(!$.trim(this.value).length) {
$('form').append($input.clone());
}
}).on('blur', 'input.value', function(e) {
var $this = $(this);
if(!$.trim(this.value).length) {
console.log('REMOVING INPUT');
$this.parent().remove();
} else {
$this.attr('name', 'item-'+$this.val());
}
});
समस्या फिर भी है, कि क्रोम में blur
घटना दो बार निकाल दिया जाता है जब मैं किसी अन्य अनुप्रयोग पर स्विच करें (⌘टैब)। यह एक त्रुटि देता है, क्योंकि यह संभव नोड दूर करने के लिए नहीं है, क्योंकि यह पहले से ही चला रहा है:
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8
फ़ायरफ़ॉक्स ठीक से काम करने लगता है।
तो blur
ईवेंट दो बार निकाल दिया गया है और मैं इसे कैसे होने से रोक सकता हूं?
EDIT - this question में उत्तर का प्रयास किया, लेकिन कोई भाग्य नहीं। अभी भी क्रोम में त्रुटि संदेश प्राप्त करें, मैं गलत क्या कर रहा हूं?
वहाँ अगर तत्व अभी भी मौजूद है की जाँच करने के लिए एक तरीका है? क्योंकि दूसरी बार blur
आग को हटा दिया जाता है। $(this).length
हालांकि अभी भी शून्य नहीं है।
http://stackoverflow.com/questions/9649966/chrome-maybe-safari-fires-blur-twice-on-input-fields-when-browser-loses-foc –
का डुप्लिकेट हाँ मुझे पता था कि यह परिचित लग रहा था: -) – Pointy
धन्यवाद, बेवकूफ मुझे, jQuery के लिए खोजा गया :(इसे आजमाएं – floorish