2016-06-05 5 views
0

Ich erstelle ein Plugin, das Optionen akzeptiert, wenn es aufgerufen wird. Allerdings möchte ich eine der Optionen auch als CSS-Eigenschaft (Position) verdoppelnjQuery Plugin-Option als CSS-Eigenschaft

var settings = $.extend({ 
     position : 'right', 
     size  : '300px', 
     speed : '1000ms' 
}, options); 

if (settings.position == 'left' || settings.position == 'right') { 
     return this.css({ 
      width: settings.size, 
      height: '100%', 
      settings.position: '-' + settings.size 
     }); 
} 

Ich möchte die settings.position: '-' + settings.size effektiv Ausgabe: right: -300px.

Dank

+0

mit ES6 werden können Sie 'verwenden {height:‚100% ', [settings.position]:' - '+ settings.size} ' –

Antwort

1

Versuchen

var css = { 
    width: settings.size, 
    height: '100%' 
}; 

css[settings.position] = '-' + settings.size; 

return this.css(css); 

diese Weise wird der Interpreter settings.position in einen String zuerst auswertet, so dass der Ausdruck css['left'] = ...