我有一个由contextmenu生成的文本字段,并且希望默认选择它(默认为自动对焦)。我无法使用功能jquery focus
成功答案 0 :(得分:0)
您可以尝试设置自动对焦属性吗?
$(function(){
$.contextMenu({
...
name_input: {
name: "Name input :",
autoFocus: true,
type: 'text',
...
...
答案 1 :(得分:0)
在focus
部分中设置events.show
。
在设置timeout
之前,您需要input
才能使focus
元素出现在DOM中。
input
名称将以context-menu-input-
为前缀。
请参见下面的代码段
$(function() {
$.contextMenu({
selector: '.context-menu-one',
items: {
// <input type="text">
input1: {
name: "Text",
type: 'text',
value: "Hello World",
events: {
keyup: function(e) {
window.console && console.log('key: ' + e.keyCode);
}
}
}
},
events: {
show: function(opt) {
var $this = this;
$.contextMenu.setInputValues(opt, $this.data());
// Set focus to the input element
setTimeout(() => {
$('[name="context-menu-input-input1"]').focus();
}, 10);
},
hide: function(opt) {
var $this = this;
$.contextMenu.getInputValues(opt, $this.data());
}
}
});
});
<link href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script>
<span class="context-menu-one btn btn-neutral">right click me</span>
希望这会有所帮助。