基本上,我想在mouseenter上为li
元素添加div,然后在同一父li
的另一个ul
元素的mouseenter上附加一个单独的div。因此,如果li
悬停,请追加#div1
,如果其他li
悬停,请附加#div2
。
这是我到目前为止所拥有的
$('ul > li').mouseenter(function (){
$('#div1').appendTo(this);
if (('ul > li').mouseenter().not(this)){
$('#div2')appendTo(this);
}
});
这只会将#div1
追加到悬停的li
。如果另一个#div2
悬停,我如何追加li
? .not()
选择器似乎不起作用。提前致谢。
答案 0 :(得分:1)
我建议如下:
$('li').mouseenter(
function(){
var that = $(this),
i = that.index();
if (i == 0){
$('#div1').appendTo(that);
}
else {
$('#div2').appendTo(that);
}
});
以上内容基于您希望将#div1
附加到第一个li
,并将#div2
附加到所有其他li
元素的假设。
已编辑以回应OP的评论(左下方):
我实际上想在mouseenter上附加#div1然后如果另一个li被徘徊,我想将#div2附加到#div1附加到的相同li上。
$('li').mouseenter(
function(){
var that = $(this),
i = that.index();
if (i == 0){
$('#div1').appendTo(that);
}
else {
$('#div2').appendTo($('#div1').closest('li'));
}
})
参考文献:
答案 1 :(得分:0)
或者,您可以使用li
将div放在display:none
元素内,并在鼠标悬停时显示它们。你可以淡出/等..
<强> CSS 强>
li div {display:none}
<强> HTML 强>
<ul>
<li>Whatever <div>the div </div></li>
<li>Whatever 2<div>the div 2</div></li>
<li>Whatever 3<div>the div 3</div></li>
</ul>
<强> JS 强>
$('li').mouseenter(
function(){
$('div', this).show(); //
});