从jqGrid的gridComplete事件期间创建的按钮调用函数?

我正在尝试在gridComplete事件期间创建的按钮的onclick事件中调用一个函数.Loads OK …这里是第一行中按钮的渲染html的样子

 

但是当我点击按钮时…函数没有被调用,而firebug说…

deleteRow未定义

我怎样才能调用一个函数,而不是使用内联javascript ,,,(它确实可以工作BTW,但我想将函数称为可读性和可维护性)。 我已经包含了工作内联javascript …它在下面的代码段中被注释掉了…

下面是jqGrid设置的网格完成部分。

 jQuery("#list").jqGrid({ ........................ gridComplete: function() { var ids = jQuery("#list").jqGrid('getDataIDs'); for (var i = 0; i < ids.length; i++) { var cl = ids[i]; de = ""; //de = ""; jQuery("#list").jqGrid('setRowData', ids[i], { Delete: de }); } } ........................ }); 

这是deleteRow()函数……

 function deleteRow() { alert("hit delete button"); // jQuery("#grid_id").jqGrid('delGridRow', row_id_s,options ); } 

我会改变你的网格完整function,这样它就会给插入一个说“删除”的类,然后在我的文档就绪函数中为该类选择器设置一个实时点击事件。

这样的事情

 gridComplete: function() { var ids = jQuery("#list").jqGrid('getDataIDs'); for (var i = 0; i < ids.length; i++) { var cl = ids[i]; de = ''; $("#list").jqGrid('setRowData', ids[i], { Delete: de }); } } $('#list .delete').live('click',function(){ var id = $(this).parent().attr('id'); }); 

您可以将deleteRow定义为自定义jQuery函数,然后在所选元素上调用它。

 $.fn.deleteRow = function() { row_id = $(this).attr('id'); return $("#grid_id").jqGrid('delGridRow', row_id); } 

这样叫:

 $("#grid_id button[value=Delete]").click( function() { $(this).parents('.row_class').deleteRow(); }); 

我想这需要更复杂 – 我不熟悉jqGrid,但你需要做的是非常简单。


你能发一些加价吗? 如果没有看到ID,就很难说出如何按ID选择行。