One of the main advantages of jQuery is that it is so plug-in, so if you have a need that is not immediately satisfied with the library, there is a huge landscape of search plugins. And if there is nobody to do what you want, it is really easy to collapse. I think the right way here if you cannot find a plugin that does what you want is the last one: write your own.
However, make sure you yourself understand the specifications of your plugin. What should it return if the element does not have css settings to populate? Should it return the style of this element or the computed style? What happens with invalid css (for example, "padding-top: 10 unitsThatDontExist;" or "padding-left: two;")?
To get started , here is what your own plugin can do in your code:
var topPadding = $('#anElement').padding('top');
To make this available, simply write the plugin as follows:
$.fn.padding(direction) { // calculate the values you need, using a switch statement // or some other clever solution you figure out // this now contains a wrapped set with the element you apply the // function on, and direction should be one of the four strings 'top', // 'right', 'left' or 'bottom' // That means you could probably do something like (pseudo code): var intPart = this.css('padding-' + direction).getIntegerPart(); var unit = this.css('padding-' + direction).getUnit(); switch (unit) { case 'px': return intPart; case 'em': return ConvertEmToPx(intPart) default: // Do whatever you feel good about as default action // Just make sure you return a value on each code path } };
Tomas Lycken Jul 19 '10 at 7:14 2010-07-19 07:14
source share