2016-09-21 2 views
0

Моя функция работает так, как должна. есть ли способ удалить функцию из определенного входа? Потому что он меняет все входы .. У меня есть 2 флажка и 1 вход, который мне не нужно включать.Specifiy input target blur function

$('input').blur(function(){ 
    $('input').parent().removeClass("gray"); 
}) 
    .focus(function() {  
     $(this).parent().addClass("gray") 
}); 
+0

Что вы подразумеваете под конкретным вводом? –

+0

Aftab Ahmed Я хочу это на всех моих полях ввода. Но у меня есть 3 поля ввода. Я не хочу эту функцию. – Amoro

+0

У вас есть id или класс этих трех входов, чтобы отличить их от остального в DOM? –

ответ

3

Попробуйте добавить класс к входу и флажком, что вы не хотите onblur функции, а затем обновить код, как показано ниже

Добавьте class к трем входам, которые Вы не хотите эту функцию

$('input').not(".class").blur(function() { 
    $(this).parent().removeClass("gray"); 
    }) 
    .focus(function() { 
    $(this).parent().addClass("gray") 
    }); 

Надеюсь, это поможет вам, д.

2

Используйте this контекст, $('input') подберет все <input> элементы, this в callback будет удерживать элемент, на котором event вызывается!

$('input').blur(function() { 
 
    $(this).parent().removeClass("gray"); 
 
    }) 
 
    .focus(function() { 
 
    $(this).parent().addClass("gray") 
 
    });
.gray { 
 
    background: gray; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<div> 
 
    <input type="text"> 
 
</div> 
 
<div> 
 
    <input type="text"> 
 
</div>

+0

Район не уверен, что вы имели в виду – Amoro

0

Если у вас есть идентификаторы для этих трех входов, вы можете использовать этот фрагмент кода.

$('input').blur(function(){ 
    $(this).parent().removeClass("gray"); 
}) 
.focus(function() {  
    $(this).parent().not("#id1, #id2, #id3").addClass("gray") 
}); 

Он добавит класс к тем входам, которые не соответствуют селектору.