我有一个启用了单元格编辑的jqGrid。
我还为所有click
元素设置了委派<input>
个事件。这意味着当用户点击<input>
时,屏幕上会显示一个键盘,以便他们可以编辑该值(此解决方案适用于触摸屏)。
当用户单击单元格以启动编辑时,将显示单元格编辑器。但是,用户必须直接单击单元格编辑器以触发click
事件并显示屏幕键盘(实际上必须“双击”才能编辑该值)。
我希望能够在编辑开始后立即触发单元格编辑器的click
事件。
我尝试了以下操作,但它不起作用:
$('#myGrid').jqGrid({
// ...
afterEditCell: function() {
$(document.activeElement).trigger('click');
}
});
谁能告诉我怎么做?
答案 0 :(得分:1)
我设法通过以下方式实现了这一目标。
首先,我设置了以下内容:
$('#myGrid').jqGrid({
//....
cmTemplate: { editoptions: {class: 'jqg-editor'} }
//....
});
这确保了jqGrid创建的单元格编辑器自动应用了jqg-editor
CSS类。所以我们可以使用委托的'焦点'事件来定位它,如下所示:
$(document).on('focus.jqg', '.jqg-editor', function() {
$(this).trigger('click');
});
答案 1 :(得分:0)
伙计们! 我确实喜欢@FixMaker的想法,Thks!我在下面显示我的工作。
$(document).ready(function () {
$(document).on('click', '#grupo_pesquisadores input', function() {
$(this).trigger('click');
if ($(this).attr("class") == 'fileIndividual') {
if ( $(this).is(":checked") ) {
$("#grupo_pesquisadores").find(".fileShared").prop("checked", false);
}
}
if ($(this).attr("class") == 'fileShared') {
if ( $(this).is(":checked") ) {
$("#grupo_pesquisadores").find(".fileIndividual").prop("checked", false);
}
}
});
}); //document.ready end
我用它来控制一些复选框。当我单击“ fileIndividual”复选框时,它会取消选中所有选中的“ fileShared”复选框,如果我单击任何“ fileShared”复选框,则它会取消选中“ fileIndividual”复选框。