2011-12-29 46 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

欢迎来到SO。你到底需要什么帮助? – 2011-12-29 21:00:28

+0

如果您真的只想知道$正在做什么,请阅读以下内容:http://docs.jquery.com/How_jQuery_Works – Chris 2011-12-29 21:03:19

+0

jQuery的['.browser'](http://api.jquery.com/jquery.browser /)已弃用。这意味着它可以并且*将*在不久的将来会在没有警告的情况下停止工作。如果您没有使用特定的jQuery旧版本,请更改您的“if”以尝试特征检测或替代方法。 – 2011-12-29 21:03:52

回答

1

这是使用jQuery库的代码。在jQuery中,$符号被用作函数和对象。所以$.browser.msie是属性值。而$(this)是一个函数调用,它调用$函数并将其作为参数传递给this

在jQuery中,将一个DOM元素传递给$函数会返回一个jQuery对象,然后您可以调用一堆jQuery方法。

例如:

$(this).css('width') 

获取的物体的CSS宽度(内部它使用的getComputedStyle)。

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

将对象的CSS宽度设置为'auto'。

+0

感谢您的解释,现在变得更有意义 – TGarcia 2011-12-29 21:29:55

4

$jQuery的别名,它是实现jQuery全部功能的对象。它可以以几种方式使用:

  • 为纯对象,以访问其属性(如在$.browser.msie
  • 作为函数接受字符串(或元件,或元件的阵列,或jQuery集合),它从DOM中选择元素并包装它们,返回一个jQuery集合(如在$(select[name*="codeValue"]')中,按字符串或$(this)来包装原始元素)
  • 作为接受函数的函数,作为别名为$.ready()

第二个是jQuery最常见的,用于访问文档中的元素。返回的jQuery集合然后实现了一堆jQuery方法,这些方法通常返回相同的集合,因此它们可以链接在一起。