2011-12-29 11 views
0

このコードはちょうど最長の文字列を取ってそのサイズを状態にするのではなく、すべてのブロスワワーにフィットさせるようにしました。今のところ私はこのことを初めて熟知しているのか、それを正しく理解しているのかわからない。アドバイスをよろしくお願い致します。ありがとう

if($.browser.msie && parseInt($.browser.version, 10) < 8) 
{ 
    var relevantDropdowns = $('select[name*="codeValue"]'); 
    relevantDropdowns.mousedown(function() 
    { 
     if($(this).css('width')!== 'auto'); 
     { 
      $(this).css('width', 'auto'); 
      $(this).css('position', 'absolute'); 
     } 
    }); 

    relevantDropdowns.blur(function() 
    { 
     $(this).css('width', '100px'); 
     $(this).css('position', ''); 
    }); 

    relevantDropdowns.change(function() 
    { 
     $(this).css('width', '100px'); 
     $(this).css('position', ''); 
    }); 
} 
+2

ようこそ。正確に何が助けを必要としますか? –

+0

$が何をしているか本当に知りたいのなら、これを読んでください:http://docs.jquery.com/How_jQuery_Works – Chris

+0

jQueryの['.browser'](http://api.jquery.com/jquery.browser /)は推奨されません。これは近い将来警告なしで働くことができ* *することを意味します。特定のjQueryの古いリリースを使用していない場合は、 'if'を変更して機能の検出を試みるか、別の方法を試してください。 –

答えて

1

これはjQueryライブラリを使用するコードです。 jQueryでは、$シンボルが関数とオブジェクトの両方として使用されます。したがって$.browser.msieはプロパティ値です。 $(this)は、$関数を呼び出して、thisを引数として渡す関数呼び出しです。

jQueryでは、DOM要素を$関数に渡すとjQueryオブジェクトが返されます。jQueryオブジェクトを呼び出すと、一連のjQueryメソッドを呼び出すことができます。例えば

$(this).css('width') 

は、オブジェクトのCSSの幅を取得します(内部的にはgetComputedStyleを使用しています)。

$(this).css('width', 'auto'); 

は、オブジェクトのCSS幅を 'auto'に設定します。

+0

今、もっと意味がある説明をありがとう – TGarcia

4

$は、jQueryのエイリアスであり、jQuery機能のすべてを実装するオブジェクトです。いくつかの方法で使用することができる。

  • 普通のオブジェクトとして、そのプロパティにアクセスする($.browser.msieのように)
  • 列(または要素、または要素のアレイ、又はAを受け付ける関数としてjQueryコレクション)は、DOMから要素を選択してラップし、jQueryコレクションを返します($(select[name*="codeValue"]')、文字列で選択する場合は$(this)、プリミティブ要素をラップする場合)
  • は関数を受け入れる関数として別名を$.ready()

2番目はjQueryに最も一般的なもので、ドキュメントの要素にアクセスするために使用されます。返されたjQueryコレクションは、通常、同じコレクションを返すjQueryメソッドを実装しているため、チェーン化できます。

関連する問題