我遇到了jqGrid
的问题,我不知道是否有一个简单的解决方案。
当我第一次点击一行时,应用slideUp
标题包含有关注册表的信息,如果我再次点击应用slideDown
此标题。这项工作在onSelectRow
jqGrid
事件中编码,并且正常运作。
当我连续双击时出现问题。在这种情况下,应用slideUp
包含有关标题的寄存器的所有内容。我想要阻止的行为是onSelectRow
,因为当ondblclickRow
事件被触发时,onSelectRow
事件之前被触发了两次。
这是我的代码:
ondblClickRow: function(id) {
if (model.gisgridmap.context.id=="griddiv" && $(".editbt").length>0) {
if (model.selectedrow == id) {
$el.trigger("onUnselectRow");
$(this).find(".ui-state-highlight, [aria-selected='true']").removeClass('ui-state-highlight');
model.selectedrow = 0;
}
else{
$el.trigger("onSelectRow", id);
$(this).find('[aria-selected=true]').addClass('ui-state-highlight');
model.selectedrow = id;
pui.editForm(model);
}
},
onSelectRow: function(id,status,e){
if (model.selectedrow == id) {
$el.trigger("onUnselectRow");
$(this).find(".ui-state-highlight, [aria-selected='true']").removeClass('ui-state-highlight');
model.selectedrow = 0;
}
else{
$el.trigger("onSelectRow", id);
$(this).find('[aria-selected=true]').addClass('ui-state-highlight');
model.selectedrow = id;
}
}
提前致谢。
答案 0 :(得分:0)
你可以试试这个:
ondblClickRow: function(id, status, e) {
e.preventDefault(); // see : http://api.jquery.com/event.preventDefault
e.stopPropagation(); // see : http://api.jquery.com/event.stopPropagation
...
}
答案 1 :(得分:0)
最后,我在timeout
上放了一个dblclick
,有足够的时间来显示标题,之后表单slidesUp
没有奇怪的行为。我无法按照我的意愿解决事件发生的问题,但解决方案很好。
ondblClickRow: function(id, iRow, iCol, e) {
pui._hideBar();
if (model.gisgridmap.context.id=="griddiv" && $(".editbt").length>0) {
$(this).find('[aria-selected=true]').addClass('ui-state-highlight');
pui.showForm(model, id, false, model.gisgridmap.context.id);
setTimeout(function(){
model.selectedrow = id;
pui.editForm(model);
}, 400);
}
},
onSelectRow: function(id,status,e){
if ($(this).jqGrid('getGridParam', 'multiselect')) {
$el.trigger("onSelectRow", id);
return;
}
e.preventDefault();
if (model.selectedrow == id) {
e.preventDefault();
$el.trigger("onUnselectRow");
$(this).find(".ui-state-highlight, [aria-selected='true']").removeClass('ui-state-highlight');
model.selectedrow = 0;
}
else{
$el.trigger("onSelectRow", id);
$(this).find('[aria-selected=true]').addClass('ui-state-highlight');
model.selectedrow = id;
}
}
最好的问候。