[jQuery] jQuery.cssHooks - CSS

if( !$.cssHooks ){
  throw('jQuery 1.4.3以上が必要です。');
  return;
}

function styleSupport( prop ){
  var vendorProp;
  var supportedProp;
  var capProp = prop.charAt(0).toUpperCase() + prop.slice(1);
  var prefixes = ['Moz','Webkit','O','ms'];
  var div = document.createElement('div');
  if( prop in div.style ){
    supportedProp = prop;
  }else{
    for( var i=0; i<prefixes.length; i++ ){
      vendorProp = prefixes[i] + capProp;
      if( vendorProp in div.style ){
        supportedProp = vendorProp;
        break;
      }
    }
  }
  div = null;
  $.support[ prop ] = supportedProp;
  return supportedProp;
}

var borderRadius = styleSupport('borderRadius');

if( borderRadius && borderRadius !== 'borderRadius' ){
  $.cssHooks.borderRadius = {
    get: function( elem, computed, extra ){
      return $.css( elem, borderRadius );
    },
    set: function( elem, value) {
      elem.style[ borderRadius ] = value;
    }
  };
}

$('#btn0').click(function(){
  $('#rect0').css('borderRadius','10px');
  $('#input0').val( $('#rect0').css('borderRadius') );
});

jQuery.cssHooks
CSSプロパティの取得・設定を行う関数を定義する。

id = rect0

幅を取得する