JQuery:没有悬停的悬停

Iva*_*var -3 javascript jquery hover

我甚至对jQuery在一个元素上放置悬停属性的愚蠢方式感到惊讶.看看这个示例CSS:

div.test
{
   width: 20px;
   height: 20px;
   color: #000000;
   background: #FFFFFF;
}
div.test:hover
{
   color: #FFFFFF;
   background: #CC0000;
}
Run Code Online (Sandbox Code Playgroud)

如果我们想将其转换为jQuery,我们必须输入以下内容:

$('div.test').css({
   'width' : '20px',
   'height' : '20px',
   'color' : '#000000',
   'background' : '#FFFFFF'
});
$('div.test').hover(function() {
   $(this).css({
      'color' : '#FFFFFF',
      'background' : '#CC0000'
   });
}, function() {
   $(this).css({
      'color' : '#000000',
      'background' : '#FFFFFF'
   });
});
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?写出明显的东西感觉很愚蠢.

先感谢您.

Pra*_*yan 15

你接近这个错误的方式.你可以像这样定义一个CSS类

.highlighted
{
   color: #FFFFFF;
   background: #CC0000;
}

$('div.test').hover(function() {
    $(this).addClass('highlighted');
}, function() {
    $(this).removeClass('highlighted');
});
Run Code Online (Sandbox Code Playgroud)

  • 什么"只能Javascript"是什么意思?你不能CSS你的页面?这有什么荒谬的限制?做你正在问的接受的,正确的方式正是这里所描述的.对于这种情况,甚至不需要用直接的CSS样式而不是类来解决这个问题...... (10认同)
  • 他不是"只是将样式属性放在CSS类中",他将CSS放在样式表中并操纵元素的类而不是样式.这称为抽象,节省您的时间.我建议你学习一些关于风格,行为和内容,交配的最佳实践. (4认同)
  • 首先,请注意你的语气.你不是很清楚你的问题,所以如果人们不遵守,不要被冒犯.其次,在JavaScript中对样式进行硬编码(风格和行为的分离,以及所有这些)都是一个坏主意,因此建议使用类来应用于悬停元素(有点像`:hover`)伪选择器).这样你可以重复使用你的代码用于其他悬停效果,如果你想改变样式,你只有一个地方可以看:你的样式表,它应该在哪里. (2认同)