2013-01-24 44 views
6

Olası Çoğalt:
Focus and blur jQuery events not bubblingOdak olayı nasıl temsil edilir?

var default_input_value = null; 
jQuery('body').on('focus focusout', 'input[type="text"]', function(event){ 
    if(event.type === 'focus'){ 
     default_input_value = jQuery(this).val(); 
     jQuery(this).val(''); 
    }else if(event.type === 'focusout') 
     if(jQuery(this).val().length === 0) 
     jQuery(this).val(default_input_value); 
    } 
); 

Bu kod basitçe olaya yanıt vermiyor. P.S. focus ve blur olaylar tarafından belirlenir

: o

+1

deneyin ' – elclanrs

+0

' default_input_value' son değeri elinde tutuyor girişi focued ve her biri için değil. Bazı filigran/yer tutucu sorunlarını çözmeye mi çalışıyorsunuz? – Stefan

+0

@elclanrs teşekkürler, 'focus'' focusin' – Kin

cevap

18

.on() jquery belgenin altında, bir açıklama yoktur .... Ayrıca bazı durumlarda, checkbox üzerinde ateşler jQuery focus çünkü input[type="text"] olacağını önemlidir W3C balonu değil, jQuery tarayıcısını oluşturan çapraz tarayıcıyı focusin ve focusout olayları tanımlar. Temsilci olay işleyicileri eklemek için focus ve blur kullanıldığında, jQuery adları eşler ve focusin ve focusout olarak teslim eder. Tutarlılık ve netlik için, köpüren etkinlik türü adlarını kullanın.

Bunun yararlı olacağını umuyorum.

Ve bu kodu deneyebilirsiniz: o Event.stopPropagation() `belki çalışır veya görmek focusin`` üzerinde

var default_input_value = null; 
jQuery('body').on('focusin focusout', 'input[type="text"]', function(event){ 
    if(event.type === 'focusin'){ 
     default_input_value = jQuery(this).val(); 
     jQuery(this).val(''); 
    }else if(event.type === 'focusout'){ 
     if(jQuery(this).val().length === 0) 
     jQuery(this).val(default_input_value); 
    } 
}); 
İlgili konular