jquery hover().addClass() problem

帅比萌擦擦* 提交于 2019-12-19 04:52:46

问题


http://jsfiddle.net/aBaw6/2/

This demo does not add class when you hover a list item.

What am I doing wrong here?

$("li").hover(
  function () {
    $(this).addClass('hover);
  }, 
  function () {
    $(this).removeClass("hover");
  }
);

html

<ul>
    <li>Milk</li>
    <li>Bread</li>
    <li>Chips</li>
    <li>Socks</li>
</ul>

css

.hover{
    color:green;
    font-size: 20px;
}

Thanks in advance.


回答1:


Your JavaScript was badly formed:

$("li").hover(
  function () {
    $(this).addClass('hover);
  }, 
  function () {
    $(this).removeClass("hover");
  }
);

Should be:

$("li").hover(
  function () {
    $(this).addClass('hover');
  }, 
  function () {
    $(this).removeClass('hover');
  }
  );

If you click on the JS Lint button to the top of the screen it would've told you this (this isn't intended as a criticism, just a note for your future use of JS Fiddle).




回答2:


Your javascript syntax is incorrect

$(this).addClass('hover);

Should be:

$(this).addClass('hover');

You forgot to terminate the string.

It works just fine with this change.




回答3:


While others noted the missing quotation mark, I'd note that you should really be doing this with CSS instead of javascript:

http://jsfiddle.net/aBaw6/8/

li:hover{
    color:green;
    font-size: 20px;
}

IE6 doesn't support this on a <li>, but you could wrap the content with an <a> and style that if support is needed.

If you did use javascript, you could reduce your code like this:

http://jsfiddle.net/aBaw6/7/

$("li").hover( function (e) {
    $(this).toggleClass('hover', e.type === 'mouseenter');
});



回答4:


You Have Missed the quote '

   $("li").hover(
      function () {
        $(this).addClass('hover');
      },
      function () {
        $(this).removeClass("hover");
      }
    );


来源:https://stackoverflow.com/questions/4358964/jquery-hover-addclass-problem

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!