2015-02-06 123 views
1

JS後的元件/ Jquery的焦點下一個元件上消失/焦點元件上的jquery隱藏前一個元素之後出現了一個輸入Jquery的隱藏輸入

我的代碼:

<script> 
$(document).ready(function(){ 
$("div").click(function(){ 
$("#hide").hide(); 
}); 
); 
</script> 

上面隱藏元素'div'onclick。我真正想要的是當我填滿了第一個領域,然後點擊第二個領域,那麼它應該隱藏第一個領域。 div應該滑出。例如,我有5個字段名稱,電子郵件,出生日期,地址,郵政編碼。因此,當我輸入我的姓名並點擊電子郵件時,姓名DIV應該通過滑出消失。我是JQuery的新手。

我該怎麼做?

感謝

+0

可以隱藏在模糊的領域,但是從一個UX點這是非常糟糕的。如果你犯了一個錯誤,你如何回到你剛填補的領域去改變它? – Capsule 2015-02-06 00:24:48

回答

0

雖然它不是隱藏字段是個好主意用戶,當focus設置在另一個字段上時,您可以將每個非空字段設置爲fadeOut。這樣,您至少有可能在單擊表單外部時返回字段(直到沒有單擊其他字段時纔會顯示)。

$(".txt").focus(function(){ 
 
    var inputs = $(".txt").not($(this)).not(".txt:hidden"); 
 
    if($(".txt").not(".txt:hidden").length == 2){ 
 
    $(".txt").focusout(function(){ 
 
     if($(this).val()){ 
 
     $(this).fadeOut();  
 
     } 
 
    }); 
 
    } 
 
    inputs.each(function(){ 
 
    if($(this).val()){ 
 
     $(this).fadeOut(); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<div><input type="text" class="txt" placeholder="Name"/></div> 
 
<div><input type="text" class="txt" placeholder="Email"/></div> 
 
<div><input type="text" class="txt" placeholder="DOB"/></div> 
 
<div><input type="text" class="txt" placeholder="Address"/></div> 
 
<div><input type="text" class="txt" placeholder="Post Code"/></div>

JSFiddle

0

可以綁定使用jQuery的on()bind()方法的事件。您關心的事件是blur,當元素失去焦點時會觸發該事件。

喜歡的東西:

$('#name').on('blur', function() { 
    $(this).hide(); 
}); 
1

這是一個非常簡單的答案,你可以輕鬆地擴展:

$('input#email').click(function(){ 
 
    if ($('input#name').val().length > 0){ 
 
     $('input#name').hide(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id='name' placeholder="name"></input><br> 
 
<input id='email' placeholder="email"></input><br>