function easytooltip(target,content) {
target.mouseover(function(e){
var html = "<div class='card' style='display:block;'>"+content+"</div>";
$("body").append(html);
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mousemove(function(e){
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mouseout(function(e){
$(".card").remove();
})
}
上面的函数直接写进去的时候就是对的
但是如果写在闭包里面
+function ($) {
function easytooltip(target,content) {
target.mouseover(function(e){
var html = "<div class='card' style='display:block;'>"+content+"</div>";
$("body").append(html);
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mousemove(function(e){
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mouseout(function(e){
$(".card").remove();
})
}
}(jQuery);
就会提示方法未定义,是为什么?
函数easytooltip
是一个闭包,什么叫放在闭包里?闭包仅在你外层函数的作用域下可见,你在外面访问当然访问不到,你需要一个方法把闭包暴露出去。
+function ($) {
function easytooltip(target,content) {
target.mouseover(function(e){
var html = "<div class='card' style='display:block;'>"+content+"</div>";
$("body").append(html);
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mousemove(function(e){
$(".card").css("left",e.pageX+10);
$(".card").css("top",e.pageY+10);
})
target.mouseout(function(e){
$(".card").remove();
})
}
window.easytooltip = easytooltip;//只是个例子
}(jQuery);