Jquery UI 选择菜单键码 115/116 阻止?
Jquery UI selectmenu keycodes 115/116 preventing?
https://jqueryui.com/selectmenu/ 对键码 115 (F4) 有非常不寻常的事件反应。当您展开列表并单击 F4 按钮时,选择了 some 和 some+1 选项改变。例如 link - first 和 second 选项,但在我的应用中 20 和21 列表节点 :O.
是bug吗?有可能防止这个吗?
在我的应用程序中,我在键码 116 (F5) 上发现了第二个奇怪的反应。当您展开列表并单击 F5 按钮时,在重新加载页面之前选择了一些选项。在我的应用程序中,它是 10。对我来说并不酷,因为我有一些项目要工作。该项目有发送 ajax 请求以在 session 更改所选选项时保存数据的事件,但在单击 F5 应用程序后发送 ajax 请求,然后重新加载更改 [=56] 中某些属性的页面=] 在 10 因为正如我所说,当您单击 F5 选择菜单更改 10.
上的选定节点时
示例:
https://jqueryui.com/selectmenu/ 单击标题为 "Select a speed" 的选择菜单,然后单击 F4
是否有可能阻止此事件?
您可以像这样更改 selectmenu 原型(参见 运行 下面的代码片段):
$(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>
https://jqueryui.com/selectmenu/ 对键码 115 (F4) 有非常不寻常的事件反应。当您展开列表并单击 F4 按钮时,选择了 some 和 some+1 选项改变。例如 link - first 和 second 选项,但在我的应用中 20 和21 列表节点 :O.
是bug吗?有可能防止这个吗?
在我的应用程序中,我在键码 116 (F5) 上发现了第二个奇怪的反应。当您展开列表并单击 F5 按钮时,在重新加载页面之前选择了一些选项。在我的应用程序中,它是 10。对我来说并不酷,因为我有一些项目要工作。该项目有发送 ajax 请求以在 session 更改所选选项时保存数据的事件,但在单击 F5 应用程序后发送 ajax 请求,然后重新加载更改 [=56] 中某些属性的页面=] 在 10 因为正如我所说,当您单击 F5 选择菜单更改 10.
上的选定节点时示例: https://jqueryui.com/selectmenu/ 单击标题为 "Select a speed" 的选择菜单,然后单击 F4
是否有可能阻止此事件?
您可以像这样更改 selectmenu 原型(参见 运行 下面的代码片段):
$(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>