簡體   English   中英

在onClick中調用javascript函數

[英]calling a javascript function in onClick

當我部署代碼時,它給了我一個錯誤:saveRows不是一個函數那么怎么了?

 dataGrid.prototype = { display: function() { var self = this; var html = []; var check = 0; var lastSelection; html.push("<div style='margin-left:20px'>"); html.push("<input class='btn btn-default' type='button' value='Save All Rows' onclick='saveRows()'' />"); html.push("<table id='" + this.id + "" + "'class='table'>\\n</table>"); html.push("<div id='pagger_" + this.id + "'></div>"); html.push("</div>"); $('body').append(html.join("")); $("#" + this.id).jqGrid({ // ... }); }, // ... saveRows: function() { var ids = $("#" + this.id).jqGrid('getDataIDs'); for (var i = 0; i < ids.length; i++) { $("#" + this.id).jqGrid('saveRow', ids[i]); } } }; 

還有其他建議嗎?

你可以改變

<input class='btn btn-default' type='button' value='Save All Rows'
       onclick='saveRows()'' />

<input id='mysave' class='btn btn-default' type='button' value='Save All Rows'/>

並使用

$("#mysave").click(function () {
    // any code executed on click on the button
});

saveRows函數是dataGrid原型的一部分。 因此,它沒有被定義為全局函數-並且不能被定義為純HTML中的onclick處理程序。

您可以通過使用jQuery(而不是HTML字符串)創建DOM元素來解決問題,並直接綁定onclick回調。 例如(未測試):

$(body).append(
    $('<div/>').style('margin-left', '20px').append(
        $('<button/>', {
            'class': 'btn btn-default',
            'text': 'Save All Rows'
        }).on('click', function () {
            self.saveRows();
        }),
        $('<table/>', {
            'id': self.id,
            'class': 'table'
        }),
        $('<div/>', {
            'id': 'pager_' + self.id
        })
    )
);

改變這個:

html.push("<input class='btn btn-default' type='button' value='Save All Rows' onclick='saveRows()'' />");

實際上是一個對象:

var theInput = $("<input class='btn btn-default' type='button' value='Save All Rows'>");
    $(document).on("click", theInput, function(){self.saveRows()});

然后,將其添加到html數組中。

html.push($(theInput)[0].outerHTML);

https://jsfiddle.net/atg5m6ym/3524/

你可以試試這個

$('body').on('click','#yourButtonId',function(){  
    saveRows(); 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM