我想在事件中听一个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>
答案 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;
});