【发布时间】:2020-07-25 07:55:40
【问题描述】:
由于某种原因,ul 得到display: none,即使单击 impute 元素也不会显示。
这是html
点击后:
<input class="input country" type="text"/>
这个 html 应该显示(但它没有):
<ul id='country-list'>
<li id="US">United States</li>
</ul>
这是 jQuery 代码:
function handleCountries() {
$('#country-list').hide();
$('#country').click(function () {
$("#country-list").show();
});
};
function handleTestOut() {
handleCountries()
};
$(handleTestOut)
这是html:
<div class="container">
<input class="input country" type="text"/>
<ul id='country-list'>
<li id="US">United States</li>
</ul>
<button>explore</button>
</div>
这是一些 CSS:
.container {
position: relative;
display: flex;
flex-direction: column;
height: 200px;
}
.input {
height: 30px;
margin-bottom: 50px;
}
ul {
height: 200px;
width: 18%;
overflow: hidden;
overflow-y: scroll;
position: absolute;
background-color: blue;
top: 20px
}
编辑:我删除了无效的 html,但得到了相同的结果
【问题讨论】:
-
请edit您的问题并提供minimal reproducible example(这意味着您的代码必须在问题本身中)以及您的期望 结果,您的实际结果,包括所有错误,并展示您的研究和您的尝试,并解释究竟是什么没有奏效。
-
</ul id='country-list'>不是有效的 HTML。 -
你的代码在哪里调用了
handleCountries? (我在 repl.it 中看到它,但你应该将它添加到这个问题中。 -
@Rojo Inside
handleTestOut。问题就在这里。 -
@user4642212 抱歉,没看到。此外,我从未见过使用 jquery 运行的函数。你确定这行得通吗?你能指点我一个你看到使用 jQuery 运行函数的网站吗?无论如何,我不明白你为什么要用 jQuery 来运行一个函数而不是普通的 JavaScript。我会假设普通的 Javascript 会更快一些。