为什么jQuery下拉列表需要单击两次

Why does jQuery dropdown require two clicks?

本文关键字:两次 单击 jQuery 下拉列表 为什么      更新时间:2023-09-26

当我单击标记为"大陆和海洋"的按钮时,会出现一个下拉列表,但前提是我单击该按钮两次。我希望它第一次点击就可以工作。

我的代码有问题吗?或者我需要添加一些东西来在第一次单击时使下拉列表下降吗?

这是一个jQuery函数,但它也包括我的第一个AJAX实验,所以这可能是问题所在。

<input type = "button" id = "konoce" value = "Continents &amp; 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 &amp; 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 &amp; Oceans" class="btn btn-konoce" />

我不知道为什么你把它作为输入而不是按钮,因为它不是用来收集信息的,而是用来触发点击的。:

<button type = "button" id = "konoce" class="btn btn-konoce">Continents &amp; 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);
   });