日期:2014-05-16  浏览次数:20351 次

刚学了jquery,求解释下面的列子
$(function(){
$("a.tooltip").mouseover(function(e){
    var tooltip = "<div id='tooltip'>"+ this.title +"<\/div>"; //创建 div 元素
$("body").append(tooltip); //把它追加到文档中
$("#tooltip")
.css({
"top": e.pageY + "px",
"left": e.pageX  + "px"
}).show("fast");   //设置x坐标和y坐标,并且显示
    }).mouseout(function(){
$("#tooltip").remove();   //移除 
    });
});
这是锋利的jquery里面的例子,但是不明白function(e)中的e是什么意思,e.pageY是什么意思;还有创建节点为什么不加$啊?$("<div id='tooltip'>"+ this.title +"<\/div>")才对啊

------解决方案--------------------
那个$是要加的!!!好像被误导了!!!
------解决方案--------------------
引用:
引用:引用:引用:
参数e是怎么传进来的外部应该还套了一个带e参数的函数吧?如果没有,确实传不进来。。。不好意思,刚说错了,这个e不用传,它是来自于mouseover这个绑定函数的event~

求教大侠,var tooltip = "<div id='tooltip'>……


js中, 单双引号是可以互换的。
在这个表达式里, 如果全部用双引号, 则会造成字符串中断。 如果用\"转义又比较麻烦, 所以用单引号就非常合适了。
------解决方案--------------------
e 是一个特殊的参数,它代表事件的状态以及一些页面交互中鼠标键盘中的信息。
e.pageX,是鼠标相对于浏览器左边缘的位置,
$().appendTop();
时需要加$();
如果是$().append();就不需要$()。
$()其实代表的是jquery对象,而不是简单的说加个$()。
jquery对象与普通的dom对象是有区别的,
终究以上,我认为有空你还是得看看javascript高级程序设计第三版。
这里边提到的事件,或对象,以及如何取得鼠标在浏览中的位置,通过此书都能找到答案。
------解决方案--------------------
至于 append 的语法, 可参看:

http://www.w3school.com.cn/jquery/manipulation_append.asp

不要老问十万个为什么,没有意义。 人家规定了要这样写你就这样吧。

如果有一天你自己可以定义一个插件库, 你同样也可以规定人家怎么写。