对象 #<HTMLDivElement> 没有方法'css'


$('#someDiv').hover 
  (function(){
    (this).css({'background-color': 'black'});
  }, 
  function(){
     (this).css({'background-color': 'red'});
  }
);

每次我把鼠标移到这个div上(或移出),Chrome控制台给我回标题中的错误。我认为div对象有一个css()方法,我发现这种情况真的很混乱。

代替(this).css({...});

你需要$(this).css({...});来使用jQuery。

如果jQuery被重新映射到$以外的东西,使用jQuery(this).css({...});

(this)添加$,即$(this)

在事件处理程序中,this引用原始DOM对象(错误状态为HTMLDivElement),而不是jQuery对象。使用$()包装它将使css()方法可用,因为现在底层DOM对象包含在一个暴露其他功能的jQuery包装器中。

演示:http://jsfiddle.net/S7zd8/1/

最新更新