我在菜单中克隆了列表项,并且我在后面的链接上有一个on click
操作,应该删除克隆的元素。
但它们不会被删除,每次单击菜单项时,子菜单都会不断增长。
我尝试过不同的方法:
$('.portal-sub-menu').empty()
$('.portal-sub-menu').remove()
$('.portal-sub-menu').children().remove()
你可以在这里看到小提琴:http://jsfiddle.net/spstieng/MdJsL/8/
为什么我无法删除克隆的项目?
答案 0 :(得分:1)
这是一个固定的JSFiddle:
更新了JS:
$('.portal-menu a').click(function () {
$('.portal-menu').addClass('slide');
return false;
});
$('.portal-menu > li a').on('click', function () {
$(this).next().children().clone(true, true).appendTo('.portal-sub-menu');
$('.portal-sub-menu .back').on('click', function () {
$('.portal-menu').removeClass('slide')
setTimeout(function () {
$('.portal-sub-menu').empty();
}, 800);
return false;
});
});
.done()
电话 - 因为您的动画是基于CSS发生的,JavaScript不知道它何时完成。setTimeout()
调用以等待您的CSS动画完成,然后清空.portal-sub-menu
.promise().done(...)
电话。希望这有帮助!
答案 1 :(得分:0)
它没有奏效,因为$('.portal-sub-menu').empty();
没有被调用。试试这个:
$('.portal-sub-menu .back').on('click', function(){
$('.portal-menu').removeClass('slide')
$('.portal-sub-menu').empty();
return false;
});
<强> Demo 强>