从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选择行。