https://jqueryui.com/selectmenu/对键码 115 (F4) 有非常不寻常的事件 react 。当您展开列表并单击 F4 按钮时,选择了 some 和 some+1 选项进行更改。在来自链接的示例中 - first 和 second 选项,但在我的应用程序 20 和 21 列表节点中:O .
是bug吗?有可能防止这种情况吗?
在我的应用程序中,我发现第二个奇怪的键码 116 (F5) react 。当您展开列表并单击 F5 按钮时,在重新加载页面之前选择了一些选项。在我的应用程序中,它是 10。对我来说并不酷,因为我有一些项目要工作。该项目有发送 ajax 请求以在更改所选选项时在 session 中保存数据的事件,但是在单击 F5 应用程序发送 ajax 请求之前重新加载页面,该页面在 10 更改 session 中的某些属性,因为正如我所说的u 点击 F5 selectmenu 在 10 上更改所选节点。
例子: https://jqueryui.com/selectmenu/单击标题为“选择速度”的选择菜单,然后单击 F4
有可能避免这种情况吗?
最佳答案
您可以像这样更改 selectmenu 原型(prototype)(查看并运行下面的代码片段):
$(function() {
var ok = $.ui.selectmenu.prototype._buttonEvents.keydown;
$.ui.selectmenu.prototype._buttonEvents.keydown = function(e) {
if (e.keyCode == 115 || e.keyCode == 116) e.stopPropagation();
ok.call(this, e);
}
var a = $("#speed").selectmenu();
});
label {
display: block;
}
select {
width: 200px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<label for="speed">Select a speed:</label>
<select name="speed" id="speed">
<option value="Slower">Slower</option>
<option value="Slow">Slow</option>
<option value="Medium" selected>Medium</option>
<option value="Fast">Fast</option>
<option value="Faster">Faster</option>
</select>
关于javascript - Jquery UI selectmenu 键码 115/116 防止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896634/