我有一个具有相同类“z”的多个输入
<input type=text class=z>
<input type=text class=z>
<input type=text class=z>
<input type=text class=z>
我的jquery是
$(document).ready(function(){
$('.z').blur(function(){
$('.z').hide();
});
});
如果我在所有这些元素中失去焦点,我想要隐藏所有这些元素。但我不想隐藏它们,而我正在关注这些元素中的每一个。问题是,在输入第一个元素后,当我转到下一个元素时,它会自动隐藏。我该怎么办?
答案 0 :(得分:2)
使用$(this).show();
使当前元素可见并隐藏其余元素。
$(document).ready(function(){
$('.z').blur(function(){
$('.z').hide();
$(this).show();
});
});
您可以使用.not
{/ 1}等$('.z').not(this).hide();
来隐藏元素来从选择器中排除当前元素
$(document).ready(function(){
$('.z').blur(function(){
$('.z').not(this).hide();
});
});
根据OP中的更改修改
如果元素丢失焦点,您可以将属性添加到存储,并使用它确定所有元素是否都失去了焦点。
<强> Live Demo 强>
$(document).ready(function(){
$('.z').blur(function(){
$(this).attr('lostFocus', 'true');
if($('.z').length == $('.z[lostFocus="true"]').length)
$('.z').hide();
});
});
注意为html元素的属性添加引号,如下所示。
<input type="text" class="z">
<input type="text" class="z">
<input type="text" class="z">
<input type="text" class="z">