为什么jQuery下拉列表需要单击两次
Why does jQuery dropdown require two clicks?
当我单击标记为"大陆和海洋"的按钮时,会出现一个下拉列表,但前提是我单击该按钮两次。我希望它第一次点击就可以工作。
我的代码有问题吗?或者我需要添加一些东西来在第一次单击时使下拉列表下降吗?
这是一个jQuery函数,但它也包括我的第一个AJAX实验,所以这可能是问题所在。
<input type = "button" id = "konoce" value = "Continents & Oceans" class="btn btn-konoce"
<div id = "div-konoce"> </div>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#konoce").click(function(event) {
if ($('#div-konoce').html() == '') {
$.get( "/2b/inc/ajax/db-lists/world/konoce.php", { name: "KonOce" }, function(data) {
$('#div-konoce').html(data);
});
}
else {
$('#div-konoce').html('');
}
});
});
</script>
编辑:
我根据下面的答案修改了代码。但是,仍然需要单击两次才能打开下拉列表。
<button type = "button" id = "konoce" class="btn btn-konoce">Continents & Oceans</button>
<div id = "div-konoce" style="margin: 0 -5px;"> </div>
您的线路:
if ($('#div-konoce').html() == '')
检查"div konoce"div是否为空,但不是:
<div id = "div-konoce"> </div>
那里有一个空间。。。意思不是===''
请删除空间,然后重试。
您没有关闭输入-应该是:
<input type = "button" id = "konoce" value = "Continents & Oceans" class="btn btn-konoce" />
我不知道为什么你把它作为输入而不是按钮,因为它不是用来收集信息的,而是用来触发点击的。:
<button type = "button" id = "konoce" class="btn btn-konoce">Continents & Oceans</button>
一个提示是,为什么总是清空$('#div-konoce')
,每次单击都会导致一个ajax请求。但是,如果您只编写了第一个if
,它将在第一次单击后显示以前加载的菜单。
<div id = "div-konoce"></div>
if ($('#div-konoce').html()=='') {
$.get( "/2b/inc/ajax/db-lists/world/konoce.php", { name: "KonOce" }, function(data) {
$('#div-konoce').html(data);
});
相关文章:
- 单击仅在第二次单击后有效
- 删除确认对话框在第一次单击时不起作用
- 在Rails中第一次单击后禁用链接,Coffeescription
- 在没有焦点的情况下捕获画布上的第一次单击事件
- Javascript onclick事件在第一次单击时未启动
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 无法在第一次单击时禁用链接,并在动画完成后重新启用
- 更改类名后,将第二次单击事件附加到元素
- 防止默认,直到连续两次单击
- 让窗口在一次单击触发两个页面重定向后保持焦点
- 奇怪的是,在第二次单击切换隐藏/显示按钮而不是第一次单击后,有两行有效
- 向同一按钮添加两次单击事件只能工作一次
- JQuery切换问题,需要两次单击
- jQuery完成的多部分表单需要两次单击才能识别.submit()和.click()事件处理程序
- 使用$(“[property=value]”).click(),我希望两次单击之间有一个延迟
- SVG元素中的Onclick需要初始的两次单击
- 要使用AngularJS修改html元素,必须点击两次单选按钮
- .change() 处理程序制作表单需要两次点击才能提交
- Javascript确认对话框出现两次;单击Element后返回