$(document).ready(function() {
$('#input').focusin(function() {
if ($(this).val() != '') {
$('#div').show();
} else {
$('#div').hide();
}
$('#input').keyup(function() {
// If not empty value, show div
if ($(this).val() != '') {
$('#div').show();
} else {
$('#div').hide();
}
});
});
$('#input').focusout(function() {
$('#div').hide();
});
});
#div {
display: none;
position: absolute;
bottom: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='div'>
<a href='website.com'>Link From AJAX<a>
<a href='website.com'>Link From AJAX<a>
<a href='website.com'>Link From AJAX<a>
</div>
<input id='input' type='text'>
在此jQuery的代碼中,#div
顯示當我鍵入#input
裏面的東西,但如果我試圖點擊#div
它會消失,鏈接不起作用,
我怎能如果我在#div
單擊顯示的#div
或#input
只,但任何外界將其隱藏正常?
問題發生在position: absolute; bottom 20px
行CSS
。
更新的代碼,它突然.focusin function
後擔任預期增加if
語句之後,以前的錯誤的解決方案,消除在CSS
這幾乎總是錯的綁定內的另一個事件處理的事件處理程序。每次焦點進入輸入時,您都會複製keyup處理程序。 – Barmar
@Barmar我解決了這個問題,因爲我在更新中說過,但是在添加'AJAX'代碼後,我遇到了同樣的問題,關於重複,我希望如果你解釋它,因爲有時如果我''focusout''輸入'和回到它,'div'似乎有一個新的價值或刷新自己,這是你的意思?如果是的話,我希望能有辦法解決這個問題。 –
不要在問題中提出解決方案,將其作爲答案發布。 – Barmar