2014-01-16 3 views
2

Следующий JavaScript используется в глобальном масштабе, например. он автоматически вставляется в каждой веб-страницы в веб-приложения:Как переопределить свойство JavaScript

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#cemetracDataTable').dataTable({ 
      "sDom": 'T<"clear">lfrtip', 
      "oTableTools": { 
       "sSwfPath": "http://fubar.com/wp-content/TableTools-2.1.5/media/swf/copy_csv_xls_pdf.swf", 
       "aButtons": [ 
        "copy", 
        "print", 
        { 
         "sExtends": "collection", 
         "sButtonText": "Save", 
         "aButtons": [ 
          { 
           "sExtends":  "csv", 
           "sButtonText": "Excel (CSV)", 
           "bFooter":  false, 
           "sTitle":  "My title", 
           "sFileName": "download.csv" // <-- override 
          }, 
          { 
           "sExtends":  "xls", 
           "sButtonText": "Excel (TSV)", 
           "bFooter":  false, 
           "sFileName": "download.tsv" // <-- override 
          }, 
          { 
           "sExtends":  "pdf", 
           "bFooter":  false, 
           "sFileName": "download.pdf" // <-- override 
          } 
         ] 
        } 
       ] 
      } 
     }).columnFilter(); 
    }); 
</script> 

Я хочу, чтобы иметь возможность overrride свойства sFileName на определенной веб-странице т.д .:

... 
"sFileName": "widgets.csv" 
... 
"sFileName": "widgets.tsv" 
... 
"sFileName": "widgets.pdf" 

делает это возможным? Если да, то как это будет сделано?

+1

Я m не уверен, как вы можете получить ссылку на переданный объект в методе dataTable, так что было бы bett er, если вы назначили его переменной, а затем передаете эту переменную в качестве аргумента методу dataTable. '$ ('# cemetracDataTable'). dataTable (myObj)' – Givi

ответ

1

Было бы лучше, если бы вы хранили ссылку на объект на переменную.

Demo

var myObj = { 
    sDom: 'T<"clear">lfrtip', 
    oTableTools: { 
     sSwfPath: "http://fubar.com/wp-content/TableTools-2.1.5/media/swf/copy_csv_xls_pdf.swf", 
     aButtons: [ 
      "copy", 
      "print", { 
       sExtends: "collection", 
       sButtonText: "Save", 
       aButtons: [ { 
         sExtends: "csv", 
         sButtonText: "Excel (CSV)", 
         bFooter: false, 
         sTitle: "My title", 
         sFileName: "download.csv" // <-- override 
        }, { 
         sExtends: "xls", 
         sButtonText: "Excel (TSV)", 
         bFooter: false, 
         sFileName: "download.tsv" // <-- override 
        }, { 
         sExtends: "pdf", 
         bFooter: false, 
         sFileName: "download.pdf" // <-- override 
        } 
       ] 
      } 
     ] 
    } 
}; 

, а затем передать его в качестве аргумента

$(document).ready(function() { 
    $('#cemetracDataTable').dataTable(myObj).columnFilter(); 
}); 

и если вы хотите изменить свойство sFileName значения, вы должны относиться к ним как это:

myObj.oTableTools.aButtons[2].aButtons[0].sFileName = "widgets.csv"; 
myObj.oTableTools.aButtons[2].aButtons[1].sFileName = "widgets.tsv"; 
myObj.oTableTools.aButtons[2].aButtons[2].sFileName = "widgets.pdf"; 
+0

Это сработало. Это WordPress, поэтому я должен был поместить в заголовок назначение объекта var mObj = ... ', свойство объекта переопределяет в самой странице и, наконец, вызов метода в нижнем колонтитуле. –

2

Вы можете установить JavaScript свойства объекта с помощью .:

Что-то вдоль линий aButtons[0].sFileName = "widgets.csv" в вашем случае.

Смежные вопросы