2017-04-18 1 views
1

Ich bin kein Experte in JQuery, so dass diese Frage auf andere Plugins als DataTables angewendet werden kann. Angenommen, ich möchte eine zusätzliche (custom) Einstellung in der Initialisierung erklären:Jquery Datatables erweitern Einstellungen und Funktionen

var dTable = $('#example').DataTable(
    ..., 
    'myOption' : [{ 'text' : 'Foo' } , { 'text' : 'Bar' }, ...], 
) 

und wenn myoption deklariert wird, ich will, um automatisch eine Funktion wie diese nennen (wie eine Callback-Funktion):

function() { 
    console.log(dTable.settings().myOption) 
} 

Also im Grunde möchte ich ein Plugin erweitern, aber ich verstehe nicht, wie es aus den Handbüchern oder anderen Beispielen getan werden kann. Wie kann ich das erreichen?

Antwort

1

Eigentlich ist es ziemlich einfach zu erreichen, was Sie wollen. Haken in das init.dt Ereignis und mit etwas Schließung Magie Sie haben eine "Plugin":

//myOption "plugin" 
(function() { 
    var run = function(myOptionSettings) { 
    console.log(myOptionSettings) 
    }; 
    $(document).on('init.dt', function (e, settings, json) { 
    var myOption = settings.oInit.myOption || false; 
    if (myOption) { 
     run(myOption) 
    } 
    }) 
})(document); 

Im Einsatz:

var table = $('#example').DataTable({ 
    myOption : [{ 'text' : 'Foo' }, { 'text' : 'Bar' }] 
}) 

Demo ->http://jsfiddle.net/e3vyjta5/