【发布时间】:2013-06-01 04:16:58
【问题描述】:
如果我有 CSS p:hover {background-color:yellow} 像 this... 如何用 jQuery 做完全相同的事情?不,没有一组复杂的函数调用和属性检测,但是如何向 jQuery 说 REUSE 这个通用浏览器内置功能?
“FAST ATTACK”结束问题后的注意事项:@SamuelLiew 的解决方案使用 1 行 jQuery 代码运行,http://jsfiddle.net/uJXLG/1/
注意事项
这个问题是关于REUSE(浏览器内置功能),示例代码只是说明。
为什么我需要 jQuery(而不是“纯 CSS”)?
使用“纯 CSS”不允许应用逻辑。示例:1)激活和停用 CSS houver 的事件; 2) 复杂的选择器逻辑。
加强
拜托,简单点
$('p:hover').css('color','red');
(不运行)...
不是说给我用的
$('a').hover(function(){
$(this).css('color', 'red');
},function(){
...
}
);
这很复杂。
在@nevermind 之后编辑(请参阅用户的回答):
下面的代码比@SamuelLiew 建议的a single .addClass command 更复杂(!!)。这是因为 SamuelLiew 的代码重用了浏览器的渲染行为。
var old_background; // to memorize original background
$.fn.hover_it = function(overcolor) { // TOO COMPLEX CODE AND OVERHEAD FOR DOM!!
$(this).hover(function(){
old_background = $(this).css("background-color");
$(this).css("background-color",overcolor);
},function(){
$(this).css("background-color",old_background);
});
}
$(document).ready(function() {
$('p').hover_it('red');
});
【问题讨论】:
-
既然 css 已经这么优雅了,为什么还要在 jQuery 中使用它?
-
当我看到这样的问题时,我只是摇头,拒绝做如此愚蠢的事情而没有正当理由,发表一个尖刻的评论并继续前进。
-
@xec:我编辑添加注释。
-
@Kolink:我编辑添加注释。
-
请重新打开,我觉得你不明白这个问题,但@SamuelLiew 是的(!),请参阅jsfiddle.net/uJXLG/1 了解。