首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击HTML选择元素上的事件

单击HTML选择元素上的事件
EN

Stack Overflow用户
提问于 2019-01-15 12:06:15
回答 2查看 1.7K关注 0票数 1

我想在事件中监听一个click事件。只有当我选择其他项目时,才会触发change事件,但我需要触发一个事件,即使我单击了所选项目。

例如,当我选择Apple时,change事件触发。然后我再次选择Apple,我还需要触发一个事件。

代码语言:javascript
复制
$("#fruit").on('click', function() {
  console.log("click event");
});

$("#fruit").on('change', function() {
  console.log("change event");
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="fruit">
  <option>Apple</option>
  <option>Pear</option>
</select>

EN

回答 2

Stack Overflow用户

发布于 2019-01-15 12:18:44

据the jQuery docs报道:

当元素的值发生变化时,会向该元素发送change事件。此事件仅限于元素、框和元素。对于选择框、复选框和单选按钮,当用户使用鼠标进行选择时,事件会立即触发,但对于其他元素类型,事件会延迟到元素失去焦点。

由于在“苹果”已被选中的情况下点击“苹果”时没有变化,因此“点击”事件看起来是您最好的选择。为什么您需要在单击相同选项时触发change事件?在这种情况下,也许有比触发更改事件更好的解决方案?

票数 0
EN

Stack Overflow用户

发布于 2019-01-15 12:56:42

你可以像下面这样点击检查条件,以达到你想要的效果。

代码语言:javascript
复制
var flag = false; 
$('#fruit').on('click', function() {
  if (flag) {
    console.log($(this).val()); 
    flag = false;
  } else {
    flag = true;
  }
}).on('blur', function() {
  flag = false;
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="fruit">
  <option>Apple</option>
  <option>Pear</option>
</select>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54192576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档