javascript - OnClick 以及监听器不工作

标签 javascript jquery html css

我想通过 onclick 事件或监听器执行函数 getUser()。我已经尝试了这两种方法,但是,它们都不起作用。

您可以在下面找到我的代码。我怎样才能让它发挥作用?

我已经尝试使用按钮和输入而不是 div,效果不佳。如果您使用按钮或输入而不是 div,甚至连听众也不行。

$(document).on('focus', '#search_input', function() {
  $("#autocomplete-list").show();
});

$(document).on('blur', '#search_input', function() {
  $("#autocomplete-list").hide();
});


$(document).on('click', '.search-items', function() {
  console.log(this);
});

function getUser(id){
  console.log(id + "triggered");
}
/* Autocomplete Stlying */

.autocomplete-items {
  position: absolute;
  border: 1px solid #d4d4d4;
  border-bottom: none;
  border-top: none;
  z-index: 99;
  /*position the autocomplete items to be the same width as the container:*/
  top: 100%;
  left: 15px;
  right: 15px;
}

.autocomplete-items div {
  padding: 10px;
  cursor: pointer;
  background-color: #fff;
  border-bottom: 1px solid #d4d4d4;
  text-align: left;
}

.autocomplete-items div:hover {
  /*when hovering an item:*/
  background-color: #e9e9e9;
}

.autocomplete-active {
  /*when navigating through the items using the arrow keys:*/
  background-color: DodgerBlue !important;
  color: #ffffff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<div class="col-md-4">
  <div id="search_input_wrapper" class="autocomplete form-group" style="margin: 0px">
    <input id="search_input" type="text" name="search_input" class="form-control" placeholder="Kunde" style="margin-top: 25px;">
    <div id="autocomplete-list" class="autocomplete-items" style="display: none;">
      <div class="search-items" onclick="getUser(2)">2: Max, Mustermann</div>
      <div class="search-items" onclick="getUser(3)">3: Tom, Maier</div>
    </div>
  </div>
</div>

如有任何帮助,我将不胜感激。

最佳答案

您需要使用 stopPropagation()输入和列表元素如下:

$(document).on('focus', '#search_input', function() {
  $("#autocomplete-list").show();
});

$(document).on('click', function() {
  $("#autocomplete-list").hide();
});

$("#autocomplete-list, #search_input_wrapper").on('click', function() {
  event.stopPropagation();
});


function getUser(id) {
  console.log(id + "triggered");
}
/* Autocomplete Stlying */

.autocomplete-items {
  position: absolute;
  border: 1px solid #d4d4d4;
  border-bottom: none;
  border-top: none;
  z-index: 99;
  /*position the autocomplete items to be the same width as the container:*/
  top: 100%;
  left: 15px;
  right: 15px;
}

.autocomplete-items div {
  padding: 10px;
  cursor: pointer;
  background-color: #fff;
  border-bottom: 1px solid #d4d4d4;
  text-align: left;
}

.autocomplete-items div:hover {
  /*when hovering an item:*/
  background-color: #e9e9e9;
}

.autocomplete-active {
  /*when navigating through the items using the arrow keys:*/
  background-color: DodgerBlue !important;
  color: #ffffff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<div class="col-md-4">
  <div id="search_input_wrapper" class="autocomplete form-group" style="margin: 0px">
    <input id="search_input" type="text" name="search_input" class="form-control" placeholder="Kunde" style="margin-top: 25px;">
    <div id="autocomplete-list" class="autocomplete-items" style="display: none;">
      <div class="search-items" onclick="getUser(2)">2: Max, Mustermann</div>
      <div class="search-items" onclick="getUser(3)">3: Tom, Maier</div>
    </div>
  </div>
</div>

关于javascript - OnClick 以及监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51307848/

相关文章:

javascript - 有条件地呈现结束标记以模拟日历行为

jquery - 使用 Jquery 在图像上添加或删除标记

javascript - jQuery - 重置元素的高度不起作用

javascript - Angular 休息身份验证安全吗?

javascript - Rails partial 在使用 link_to_function 时被双重转义

javascript - 使用 lodash 将所有对象值转换为小写

html - 如何左对齐文本?

jquery - 对于具有 CSS 定义的光标的 div,如果在该 div 隐藏时鼠标不移动,IE 不会自动重置光标

javascript - 点数不显示时,如何将菜单按钮变成白色?

html - 使用 Kanna 快速解析 html 时获取特殊的 div 类数据