2010-12-10 16 views
1

Ich möchte folgendes aufzubauen, den Anruf zu einem jQuery-PluginAufbau dynamisch Aufruf jQuery-Plugin

jQuery("#wrapper").myPLugin({ 
    direction: direction, 
    switch myOption 
    { 
     case "small": 
     items:10, 

     case "big": 
     items:25, 

    } 
    switch otherOption 
    { 
     case "small": 
      prev: { 
      button: buttonPrev, 
      key: "left" 
     }, 

     case "big": 
      prev: { 
      button: buttonPrev, 
      key: "left" 
     }, 

    } 
    pagination: ".paginationHolder" 
}); 

Offensichtlich ist dies nicht funktioniert, zu tun, aber was ist der beste Weg, Panzerungen für diese Art gibt es eine allgemeine Methode zum dynamischen Aufbau eines Anrufs zu jQuery Plugins wie dieser

+0

Was meinen Sie mit "" dynamisch einen Aufruf von jQuery-Plugins aufbauen "? – rahul

+0

Wie Sie oben sehen können, ich habe Schalter und wenn Anweisungen usw. und darauf basierend eine andere Option übergeben, so (im obigen Beispiel) überlasse ich 10 oder 25 Elemente zu diesem bestimmten Plugin Aufruf – nokiko

Antwort

1

Option 1

der ternäre Operator ist dein Freund

condition ? trueResult : falseResult 

so in Ihrem Fall das könnte

sein
jQuery("#wrapper").myPLugin({ 
    direction: direction, 
    items: myOption == "small" ? 10 : myOption == "big" ? 25 : 0, // or some default value 
    prev: otherOption == "samll" ? {button: prevButton, key: 'left'} : otherOption == "big" ? {button: prevButton, key: 'left'} : null, 
    pagination: ".paginationHolder" 
}); 

Option 2

Eine weitere Option ist das Objekt außerhalb des Anrufs aufzubauen, nachdem alle JavaScript-Objekte sind vollständig dynamicallly getippt:

var setup = new object(); 
setup.direction = "foo"; 
switch(myOption){ 
    case "small": 
    setup.items = 10; 
    break; 
    case "big": 
    setup.items = 25; 
    break; 
} 
switch(otherOption){ 
    case "small": 
    setup.prev = {button: prevButton, key: 'left'}; 
    break; 
    case "big": 
    setup.prev = {button: prevButton, key: 'left'}; 
    break; 
} 
setup.pagination =".paginationHolder" 

jQuery("#wrapper").myPLugin(setup); 
+0

interessant wird dies auch mit arbeiten mehr als 2 Optionen – nokiko

+0

bearbeitet es mit anderenOption, wie würde ich diese Setup-dynamisch-Setup bauen. – nokiko

+0

@nokiko - siehe aktualisierte Antwort. Wenn dies komplex wird, verwenden Sie Option 2. – Jamiec

Verwandte Themen