我有名单。
<ul id="main">
<li><a href="#">Blah ...</a></li>
<li><a href="#">Blah ...</a></li>
<li><a href="#">Blah ...</a></li>
<li id="more">More
<ul>
<li><a href="#">Blah ...</a></li>
<li><a href="#">........</a></li>
<li><a href="#">........</a></li>
</ul>
</li>
</ul>
主要列表显示给用户。当用户悬停而更多列表项时。他看到更多列表的下拉列表。当用户点击更多列表中的列表项时。它应该替换主列表中的第三个孩子,第三个项目将被添加到#more
列表。
我感谢任何帮助。
答案 0 :(得分:1)
这应该这样做:
$('#more li').click(function() {
$('#main li').eq(2).replaceWith(this).appendTo('#more');
});
对于悬停,请查看http://api.jquery.com/hover/
答案 1 :(得分:0)
$('#more').hover(function(){$('#more ul').show();}, function(){$('#more ul').hide();});
$('#more li').click(function(){
var thirdChild = $('#main li:eq(2)');
thirdChild.replaceWith(this).appendTo('#more');
});
答案 2 :(得分:0)
这是工作demo
$(function(){
$('#more').hover(function(){
$('#more ul').show();
}, function(){
$('#more ul').hide();
});
$('#more li').click(function() {
$('#more ul').append($('#main > li').eq(2))
$('#more').before(this);
});
})
答案 3 :(得分:0)
<强> CSS 强>
#more ul { display: none; }
<强>的Javascript 强>
$('#more').hover(function() { $('ul', this).show(); },
function() { $('ul', this).hide(); });
$('#more li a').live('click', function() {
$(this).before($('#main > li:last-child').prev());
$('#main > li:last-child').before(this);
});
工作示例:http://jsfiddle.net/FishBasketGordo/BAJXB/
编辑:我将click
更改为上面live
并删除了一些不必要的代码。