如果我有这样的 CSS p:hover {background-color:yellow}
......如何用 jQuery 做完全相同的事情?不,没有一组复杂的函数调用和属性检测,但是如何让jQuery重用这个通用的浏览器内置功能呢?
“快速攻击”结束问题后的注意事项:se @SamuelLiew 的解决方案使用 1 行 jQuery 代码操作,位于http://jsfiddle.net/uJXLG/1/
笔记
这个问题是关于REUSE(浏览器内置功能),示例代码只是说明。
为什么我需要 jQuery(而不是“纯 CSS”)?
使用“纯 CSS”不允许应用逻辑。示例:1)激活和停用 CSS houver 的事件;2) 复杂的选择器逻辑。
加强
Plase,一些简单的事情
$('p:hover').css('color','red');
(不运行)...
不说我用
$('a').hover(function(){
$(this).css('color', 'red');
},function(){
...
}
);
这是非常复杂的。
在@nevermind 之后编辑(请参阅用户的回答):
正如@SamuelLiew 所建议的,下面的代码比单个.addClass
命令更复杂(!!)。这是因为 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');
});