HTML select元素上的click事件

时间:2019-01-15 04:06:15

标签: javascript jquery html

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

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

$("#fruit").on('click', function() {
  console.log("click event");
});

$("#fruit").on('change', function() {
  console.log("change event");
});
<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>

2 个答案:

答案 0 :(得分:0)

根据jQuery docs

  

更改事件在其值更改时发送到元素。此事件仅限于元素,框和元素。对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但是对于其他元素类型,该事件将推迟到该元素失去焦点之前。

由于在已经选择“ Apple”的情况下单击“ Apple”时没有变化,因此看起来“ click”事件是您的最佳选择。当您单击相同的选项时,为什么确实需要触发change事件?在这种情况下,也许有比引发变更事件更好的解决方案了?

答案 1 :(得分:0)

您可以按如下所示检查单击条件,以实现所需的功能。

webView.evaluateJavaScript("var scrollingElement = (document.scrollingElement || document.body); scrollingElement.scrollTop = scrollingElement.scrollHeight;")
var flag = false; 
$('#fruit').on('click', function() {
  if (flag) {
    console.log($(this).val()); 
    flag = false;
  } else {
    flag = true;
  }
}).on('blur', function() {
  flag = false;
});