2011-01-24 20 views
14

Giriş odağına giriş için "active" (etkin) sınıfı eklemek istiyorum ve odaklama kapalı olduğunda, o sınıfı kaldırın.jquery focus in/out

Teşekkür'ın

cevap

36

çözmek ve odaklama sadece giriş için focusOut olacaktır. focusin ve focus bubble olayları, çocuk nesnelere ve büyük ölçüde, burada (muhtemelen) gereksizdir.

oldukça standart şeyler. Daha fazla bilgi için jquery belgelerine bakın. Ayrıca sadece belirli giriş alanları için istiyorsanız, seçiciyi ('giriş' kısmı) değiştirebilirsiniz.

selektör örnekler:

+0

Bu işin. Çok teşekkür ederim. – somewhereInPHP

0

Muhtemelen focusout içinde focusin ve $(this).attr('class',''); yılında $(this).attr('class','active'); gibi bir şey istiyorum.

+0

evet kontrol .bind() veya daha iyi .on() yöntemini kullanarak olay işleyicileri ekleyebilir ancak işe doesnt. – somewhereInPHP

+0

Evet, önümüzdeki kod vurmak ve onu en çalışmıyor: $ (document) .ready (function() { \t \t \t $ ("input") focusIn (function() { \t \t $ (. Bu) .addClass) ('aktif'; \t}.); \t $ ("girdi") focusOut (fonksiyonu() { \t \t $ (bu) .removeClass ('aktif'); \t}) }); – somewhereInPHP

5
$("#id-of-your-field").focusin(function() { 
    $('#id-of-your-field').addClass("active"); 
}); 
$("#id-of-your-field").focusout(function() { 
    $('#id-of-your-field').removeClass("active"); 
}); 

Bu jquery lib yer verdik kez

$('input').focus(function() { 
    $(this).addClass('active'); 
}); 

$('input').blur(function() { 
    $(this).removeClass('active'); 
}); 

odaklanma ve bulanıklık focusIn daha uygundur oldukça standart, sizin problemi

+0

Bu benim için çalışmaz, jquery sürümünde sorun olabilir. Elimde: jquery-1.4.2.min.js – somewhereInPHP

+0

Doğru alan kimliğini eklediniz mi? –

0

için $ ('input.my_class_is_activatable') için

$ ('input # my_id_is_bob') Sen jQuery'nin focus ve blur fonksiyonları

$('input[type="text"]').focus(function() { 
    $(this).addClass("active"); 
}); 
$('input[type="text"]').blur(function() { 
    $(this).removeClass("active"); 
}); 
4

deneyin kullanabilirsiniz aşağıdaki. Bunu kullanmak için

$('#target-id').focusin( 
    function(){ 
    $(this).addClass('active'); 
    }).focusout( 
    function(){ 
    $(this).removeClass('active'); 
    }); 
6

, böyle bir şey kullanabilirsiniz:

$('input[type="text"]').focus(function() { 
    $(this).addClass("active"); 
}).blur(function() { 
    $(this).removeClass("active"); 
}); 
0

Ya da daha deneyin: Hedef kimliği dışarı sınıfı takas ve istediğiniz girişin kimliği ise

$("input[type=text]").focus(function(){ 
    $(this).addClass("active"); 
}).focusOut(function(){ 
    $(this).removeClass("active"); 
}); 
0

daha kullanışlı kodu 'Hisse formları' ve kullanım düğmesi does't gizlemek formları daha falan 'mesaj gönder' gibi giriş öğeleri kullanırsanız:

$(function() { 
    $("html").click(function(e) { 
     if (e.target.id == "your_id_element") { 
      $('#your_id_elements').addClass('open'); 
     } else if($(e.target).closest('.some_div_without_reaction').length == 0) { 
      if($('#your_id_element').hasClass('open') && $('#your_id_element').val()==''){ 
       $('#your_id_element').removeClass('open'); 
      } 
     } 
    }); 
}) 
1

jQuery on() şu şekilde görünecektir:

$('input').on("focus", function() { 
    $(this).addClass('active'); 
}).on("blur", function() { 
    $(this).removeClass('active'); 
}); 

veya ekstra ekstra kısa: odak & bulanıklık için

$('input').on("focus blur", function() { 
    $(this).toggleClass('active'); 
}); 

alternatifleri "focusIn" ve "focusOut" ama Michael Glass gibi olayları köpüren olan işaret etti.

Odaklanma olayı, içindeki veya içindeki herhangi bir öğe odağı aldığında bir öğeye gönderilir. Bu, odak etkinliğinden ana öğede odak etkinliğini algılamayı desteklemesiyle (başka bir deyişle, olay köpürmeyi destekler) farklıdır.

0

Ardından event.type

$(element).bind("focus blur", function(event){ 
    event.stopPropagation(); 
    if(event.type == "focus") 
     { 
     // Input focused/clicked 
     $(element).addClass('active'); 
     } 

    else if(event.type == "blur") 
     { 
     // Lost focus 
     $(element).removeClass('active'); 
     } 
}); 
İlgili konular