关于实现效果中 find() each() 的角色的几个问题,这样写有什么好处?
关于实现这个focus我尝试了几种想法,都可以实现,但我想知道分别得好处或者弊端,谢谢。
想要改变li的背景色,我首先想到的是$("li").css()这样的方式。
当我看到imooc上几节课的教程,是这么写的:
/*------------------------------------------------------------/
功能:设置列表中表项获取鼠标焦点时的背景色
参数:li_col【可选】 鼠标所在表项行的背景色
返回:原调用对象
示例:$("ul").focusColor("red");
/------------------------------------------------------------*/
; (function($) {
$.fn.extend({
"focusColor": function(li_col) {
var def_col = "#ccc"; //默认获取焦点的色值
var lst_col = "#fff"; //默认丢失焦点的色值
//如果设置的颜色不为空,使用设置的颜色,否则为默认色
li_col = (li_col == undefined) ? def_col : li_col;
$(this).find("li").each(function() { //遍历表项<li>中的全部元素
$(this).mouseover(function() { //获取鼠标焦点事件
$(this).css("background-color", li_col); //使用设置的颜色
}).mouseout(function() { //鼠标焦点移出事件
$(this).css("background-color", "#fff"); //恢复原来的颜色
})
})
return $(this); //返回jQuery对象,保持链式操作
}
});
})(jQuery);
加粗的地方$(this).find("li").each(function() 如果不要each() 也能实现,这样有什么区别吗?
如果不使用ul,直接使用li有什么区别?(例:把这句话去除 find("li").each(function())
return $(this); 去了也可以正常运行,请问有什么区别?