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 に答える