2014-01-27 66 views
0

我正在使用Datatables進行服務器端處理,並且我需要在查詢中添加一些額外的參數以進行一些過濾。這是我的設置看起來像:Firefox ReferenceError:...未定義問題

if($('#example').length) { 
    var oTable = $('#listings').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": ajax_url+'?action=load_table_data', 
     "fnServerParams": function (aoData) { 
      aoData.push({ "name": "filters", "value": get_table_filters() }); 
     } 
    }); 

    var tableFilterArray = {}; 
    //Setting up and changing the filters, etc... 

    function get_table_filters() { 
     return JSON.stringify(tableFilterArray); 
    } 
} 

腳本在Chrome中工作正常,但無法在Firefox中運行,使我有以下錯誤:

的ReferenceError:get_table_filters沒有定義

這裏是一個演示:http://jsfiddle.net/HaXUR/3/

我在這裏失蹤了什麼?

+1

你嘗試只是移動的功能了上述oTable? – adeneo

+0

@adeneo不應該像在父函數範圍內的任何地方那樣運行聲明嗎?我認爲我們沒有在這裏得到所有的代碼。 –

+0

@dhsto:Firefox對於出現在語句塊中的函數聲明有特殊的語法。它的行爲更像是聲明而不是聲明,所以它不會被掛起。這可能是問題,但passatgt沒有提供足夠的代碼來確定。 –

回答

1

移動get_table_filters出的if語句

if($('#example').length) { 
var oTable = $('#listings').dataTable({ 
    "bProcessing": true, 
    "bServerSide": true, 
    "sAjaxSource": ajax_url+'?action=load_table_data', 
    "fnServerParams": function (aoData) { 
     aoData.push({ "name": "filters", "value": get_table_filters() }); 
    } 
}); 
    var tableFilterArray = {}; 
} 

function get_table_filters() { 
    return JSON.stringify(tableFilterArray); 
}