2010-05-05 42 views
1

我试图调用它们是在gridComplete event..Loads创建的按钮的onclick事件的函数OK ......这里呈现的HTML看起来像按钮什么的第一行从jqGrid的gridComplete事件中创建的按钮调用函数?

<input type="button" onclick="deleteRow(9197113);" value="Delete" style="height: 22px; width: 70px;"> 

在但是当我点击按钮...该功能不被称为和萤火虫说...。

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 = "<input style='height:22px;width:70px;' type='button' value='Delete' onclick='deleteRow('" + cl + "');' />"; 
      //de = "<input style='height:22px;width:70px;' type='button' value='Delete' onclick=\"jQuery('#list').jqGrid('delGridRow', '" + cl + "', {msg: 'Delete this entry?'});\" />"; 
      jQuery("#list").jqGrid('setRowData', ids[i], { Delete: de }); 
     } 
    } 

    ........................ 

}); 

这里的deleteRow()函数...

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

定义了“deleteRow”的位置?这听起来像你没有在正确的范围内调用它。 – Zack 2010-05-05 14:24:12

+0

它在同一个javascript文件中......正好在jqGrid安装的东西下面 – w4ik 2010-05-05 14:29:26

+0

当你在下面说,它是你准备好的函数的直接子吗?它只是一个'

1

您可以定义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选择行。

+0

我会尝试你的建议...只需确定如何喂它的行ID ...因为jqGrid的delGridRow方法需要行ID jQuery(“#grid_id”)。 jqGrid('delGridRow',row_id_s,options); – w4ik 2010-05-05 14:41:52

+0

好的,你要改变'return $(this).doWhatsNeededHere;'就像我上面做的那样,根据你的需要进行调整 – Zack 2010-05-05 15:23:39

+0

Zack,谢谢你的帮忙。这是它的实时点击事件... – w4ik 2010-05-05 15:32:30

相关问题