2

尝试在 mouseenter 上附加一个元素,然后在 mouseleave 上删除相同的元素。

$(#foo).mouseenter(function (){
    $(this).append(#bar);
});
$(#foo).mouseleave(function (){
    $(this).remove(#bar);
});

不行,是我做错了吗?

4

2 回答 2

3

不引用字符串文字似乎是最明显的事情。你有没有尝试过:

$("#foo").mouseenter(function (){
    $(this).append("#bar");
});
$("#foo").mouseleave(function (){
    $(this).remove("#bar");
});

jQuery 的元素选择器函数(即$())需要一个包含 CSS 样式选择器的字符串,例如".someClass"or"#someId""div span.label"。传递那些不带引号的东西是语法错误。

于 2012-05-23T03:17:00.430 回答
2
​$("#foo").on("mouseenter mouseleave", function(e){
    e.type === "mouseenter"
        ? $("#bar").appendTo(this)
        : $("#bar", this).remove() ;
});​

提琴手:http: //jsfiddle.net/AzEnm/1/

于 2012-05-23T03:19:16.817 回答