$(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>")才对啊

解决方案 »

  1.   

    e是参数,e.pageY是参数的属性,最后一个问题,$是选择器,是页面已经存在了从中进行选择,而你那个var是声明一个新的div,就不需要$了
      

  2.   

    楼主先看下
    http://www.w3school.com.cn/htmldom/dom_obj_event.asp
    append(content)
    content
    String, Element, jQuery
    要追加到目标中的内容
      

  3.   

    不好意思,刚说错了,这个e不用传,它是来自于mouseover这个绑定函数的event~
      

  4.   

    这种事情最好先查查API。mouseover的语法是:.mouseover( handler(eventObject) );eventObject是传入的jq封装过的event对象
      

  5.   


    求教大侠,var tooltip = "<div id='tooltip'>"+ this.title +"<\/div>"中id='tooltip'怎么是单引号,html中不是双引号吗?
      

  6.   

    e 是一个特殊的参数,它代表事件的状态以及一些页面交互中鼠标键盘中的信息。
    e.pageX,是鼠标相对于浏览器左边缘的位置,
    $().appendTop();
    时需要加$();
    如果是$().append();就不需要$()。
    $()其实代表的是jquery对象,而不是简单的说加个$()。
    jquery对象与普通的dom对象是有区别的,
    终究以上,我认为有空你还是得看看javascript高级程序设计第三版。
    这里边提到的事件,或对象,以及如何取得鼠标在浏览中的位置,通过此书都能找到答案。
      

  7.   

    至于 append 的语法, 可参看:http://www.w3school.com.cn/jquery/manipulation_append.asp不要老问十万个为什么,没有意义。 人家规定了要这样写你就这样吧。如果有一天你自己可以定义一个插件库, 你同样也可以规定人家怎么写。