2012-12-19 93 views
3

如何在jqGrid中触发“ondblClickRow”事件?我需要通过点击一个按钮来调用该行的双击事件处理程序。调用双击事件

button: 
<a class="btn" id="shwDetails" type="button>Details</a> 

grid: 
$("#gridX").jqgrid({ 
... 
... 
ondblClickRow : function(rowID, iRow, iCol, e){ 
// event handler 
fetchRowData(rowID); 
} 

... 
... 
}); 

以下似乎并没有工作。

$('#gridX').trigger('jqGridDblClickRow'); 
$('#gridX').trigger('ondblClickRow'); 

在此先感谢。

+0

做你试过$(“#为gridx”)触发。 ( 'ondblClickRow'); ? –

+0

我确实尝试过。这不起作用。 – VaZaA

回答

2

我是你的特例,你可以直接调用函数fetchRowData而不是“触发一个ondblClickRow事件”。

如果一些其他的代码创建的jqGrid,你真的需要“触发”回调函数ondblClickRow(不是事件),你可以做到以下几点:

var ondblClickRowHandler = $("#gridX").jqGrid("getGridParam", "ondblClickRow"); 

ondblClickRowHandler.call($("#gridX")[0], rowID); 
+0

@VaZaA:不客气!问题是jqGrid支持回调方法lake'ondblClickRow',它将在文档和真正的jQuery事件(如'jqGridDblClickRow')中被错误地命名为“events”。人们可以定义**只有一个**回调,但可以绑定**多个**事件处理程序。看看[代码](https://github.com/tonytomov/jqGrid/blob/v4.4.1/js/grid.base.js#L2491-L2499)。所以如果你真的需要调用由jqGrid选项'ondblClickRow'定义的回调函数,你可以按照我的建议。 – Oleg

+0

Thx!那工作。感谢你的帮助! – VaZaA

+0

@VaZaA:不客气! – Oleg

0

ondblClickRow是否需要一个,部分或全部这些变量?

var rowID = ,//your rowID 
    iRow = ,//your iRow 
    iCol = ,//your iCol 
    e; 
$('#gridX').trigger('jqGridDblClickRow', [rowID, iRow, iCol, e]); 

文档浏览:​​

小心,虽然:

“的事件对象始终作为第一个参数到事件 处理过,但如果其他参数中指定的这个参数将被传递给处理程序 。要传递多个参数,请使用如下所示的数组: 从jQuery 1.6.2开始,as可以在不使用 阵列的情况下传递单个参数。“

+0

Thx为您的回应,但这不起作用。 – VaZaA