正如标题所说,我试图弄清楚如何根据输入字段是否有焦点来显示元素。
因此,当特定输入字段具有焦点时,我需要显示一个元素,当它没有焦点时,该元素应该被隐藏。
我尝试了很多不同的事情,这是我的尝试:
<script>
$(".only-oslo-delivery").hide();
if ($("#address_city").is(":focus")) {
$(".only-oslo-delivery").show();
};
</script>
only-oslo-delivery是&lt; p>当输入字段具有焦点时,我想要显示的文本标记。
address_city是输入字段的ID。
答案 0 :(得分:1)
您的代码只运行一次,您需要事件处理程序来根据用户操作执行它:
$("#address_city").on('focus', function() {
$(".only-oslo-delivery").show();
}).on('blur', function() {
$(".only-oslo-delivery").hide();
})
&#13;
.only-oslo-delivery {
display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="address_city">
<p class="only-oslo-delivery">test</p>
&#13;
答案 1 :(得分:0)
您可以将事件绑定到按钮,以便在焦点和模糊时显示/隐藏.only-oslo-delivery
元素。
$('#address_city').focus(function() {
$('.only-oslo-delivery').show();
}).blur(function() {
$('.only-oslo-delivery').hide();
});
有趣的是,如果元素在页面上彼此相邻,则可以使用相邻的css规则来实现此目的,而无需任何JavaScript。
<input type="text" id="address_city">
<p class="only-oslo-deliver">...</p>
然后使用以下css:
.only-oslo-delivery {
display: none;
}
#address_city:focus~.only-oslo-delivery {
display: block;
}
答案 2 :(得分:0)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="address_city">
<p class="only-oslo-delivery">test</p>
.only-oslo-delivery {
display: none;
}
$("#address_city").on('focus', function() {
$(".only-oslo-delivery").show();
}).on('blur', function() {
$(".only-oslo-delivery").hide();
})
答案 3 :(得分:0)
您需要使用focus
事件来显示并blur
隐藏:
$("#address_city").on('focus blur', function(e) {
$(".only-oslo-delivery").toggle($('#address_city').is(':focus') && e.type === 'focus');
});
.only-oslo-delivery {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='address_city'>
<p class='only-oslo-delivery'>only-oslo-delivery</p>
.toggle(true/false)
会在true
时显示,并在false
时隐藏。
答案 4 :(得分:0)
这是另一种方式:
var $field = $('#address_city');
var $info = $('.only-oslo-delivery').hide();
$field.on('focus blur', function (e) {
$info.toggle(e.type === 'focus');
});