0

好的,所以我有一个看起来像这样的 jQuery .on() 函数....

$("#grid").on('rowdoubleclick', function(event) {

    var appData = $("#grid").jqxGrid('getrowdata', event.args.rowindex);
    var appID = appData.application_id                                                                     

    var cellClassTitle = function(row, column, value) {

        alert("VALUE: " + value + " appData.title: " + appData.title);
        if (value == appData.title) 
           {
            return "yellowCell"
            }
    }});

我的问题是 cellClassTitle 函数中的 appData.title 变量只在第一次双击时被评估一次。每次双击一行时,cellClassTitle 函数外部的 appData 变量都会进行评估,但内部的 appData.title 值保持不变。每次执行 .on('rowdoubleclick') 函数时,如何让它更新?

4

1 回答 1

1

在 rowdoubleclick 处理程序范围之外定义函数,例如

var appData = appData || {title:""};
var cellClassTitle = function(row, column, value) {

    alert("VALUE: " + value + " appData.title: " + appData.title);
    if (value == appData.title) 
    {
      return "yellowCell"
    }
}

$("#grid").on('rowdoubleclick', function(event) {

    appData = $("#grid").jqxGrid('getrowdata', event.args.rowindex);
    var appID = appData.application_id

});

免责声明:这很讨厌,注意不要污染全局范围!http://www.yuiblog.com/blog/2006/06/01/global-domination/

于 2013-07-15T18:33:27.003 回答