自定义插件问题
请教各位,看看错哪儿?我不太懂参数问题
(function($){
$.extend({
"focusColor": function(color){
$("li").hover(function(color){
$(this).css("background-color",color)
},
function(){
$(this).css("background-color","")
});
}
});
})(jQuery)
$.focusColor("orange");
请教各位,看看错哪儿?我不太懂参数问题
(function($){
$.extend({
"focusColor": function(color){
$("li").hover(function(color){
$(this).css("background-color",color)
},
function(){
$(this).css("background-color","")
});
}
});
})(jQuery)
$.focusColor("orange");
2016-05-19
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>自定义对象级别插件</title> <!-- <link href="style.css" rel="stylesheet" type="text/css" /> --> <script type="text/javascript" src="http://www.imooc.com/data/jquery-1.8.2.min.js"></script> <script src="http://www.imooc.com/data/jquery.lifocuscolor.js" type="text/javascript"></script> </head> <body> <div id="divtest"> <div class="title"> <span class="fl">对象级别的插件</span> </div> <div class="content"> <ul id="u"> <li><span>橘子</span><span>水果</span></li> <li><span>芹菜</span><span>蔬菜</span></li> <li><span>香蕉</span><span>水果</span></li> </ul> </div> </div> <script type="text/javascript"> (function($){ $.extend({ "focusColor": function(color){ console.log(color); //orange $("li").hover(function(){ // $("li").hover(function(color){ // console.log(color);//p.Event {originalEvent: MouseEvent, type: "mouseenter", timeStamp: 1761.89, jQuery1820675307446589613: true, toElement: span…} console.log(color); //orange $(this).css("background-color",color); }, function(){ $(this).css("background-color",''); }); } }) })(jQuery); $.focusColor("orange"); </script> </body> </html>
先说一下错误,代码调试不出来时,就打bug,看输出是什么,再分析。
运行LZ的代码,当$("li").hover(function(color)中传入color参数时,让其输出,结果是p.Event {originalEvent: MouseEvent, type: "mouseenter", timeStamp: 1761.89, jQuery1820675307446589613: true, toElement: span…},不是我们传入的参数‘orange’,说明传入的参数有问题。这时,
"focusColor": function(color){ console.log(color); //orange $("li").hover(function(color){
在两者之间打log,发现输出的color就是'orange'。
因为传入的参数orange是全局变量,没有必要再传入函数中的子函数,所以在hover里不传参。
举报