2010-05-05 39 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

相關問題