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

时间:2016-05-05 00:43:11

标签: javascript jquery ajax

当我点击标有“Continents& Oceans”的按钮时,会出现一个下拉列表 - 但只有当我点击两次按钮时才会出现。我希望它能够在第一次点击时使用。

我的代码是否有问题,或者我是否需要添加一些内容才能在第一次点击时将下拉列表下拉?

这是一个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>

3 个答案:

答案 0 :(得分:4)

你的专栏:

einsum

检查&#34; div-konoce&#34; div是空的,但不是:

import numpy as np

np.random.seed(12345)

N = 100000000 # Edit this to change number of random points
x,y = np.random.random((2,N,2))
diffs = x - y

out = round(np.mean( np.hypot(diffs[:,0], diffs[:,1]) ),6)

#out = round(np.mean(np.sqrt(np.einsum('ij,ij->i',diffs,diffs))),6)

print(out)

那里有一个空间......意思不是==&#39;&#39;

删除空格,然后重试。

答案 1 :(得分:1)

你没有关闭你的意见 - 它应该是:

<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>

答案 2 :(得分:1)

一个提示是,为什么总是清空$('#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);
   });