流畅的菜单出现
问题描述:
我想制作一个菜单,从右到左滑动一个h2标题,并且当它完成从上到下的信息。如果在菜单已经存在的情况下点击不同的选项,则首先如上所述上升然后离开其他。所以主要的问题是,在某些方面需要出现2个信息而不是1个信息,我无法想象如何去做,所有信息都是一个接一个地执行。如果使用回调,一些文字会出现两次或更多次......流畅的菜单出现
$("a[rel~='showinfo']").click(function() {
var info_id = $(this).attr('id');//getting needed id from menu to show info
if($('.info_name').is(':visible'))//if already exists - removing
remove_contact();
for(i=0; i<contact_status.length; i++){//checking all array for item
if(info_id == contact_status[i]){//if item exist
create_contact(i);//putting it in
//here starts problems....
$('#info_name'+i).show("slide", {direction: "right"}, 1000, function(){
$('#info_info'+i).show("slide", {direction: "up"}, 1000);
});
}
}
//$('.info_name').show("slide", {direction: "right"}, 1000);
//$('.info_info').show("slide", {direction: "up"}, 1000);
});
function create_contact(id){
$('.third').append('<div class="showinfo"><h2 id="info_name'+id+'" class="info_name">'+contact_name[id]+'</h2><span class="info_info" id="info_info'+id+'">lol</span></div>')
}
function remove_contact() {
$('.info_name').hide("slide", {direction: "right"}, 1000);
$('.showinfo').remove();
}
答
for(i=0; i<contact_status.length; i++){//checking all array for item
if(info_id == contact_status[i]){//if item exist
(function (idx) { // use a Anonymous funciton
create_contact(idx);//putting it in
//here starts problems....
var;
$('#info_name'+idx).show("slide", {direction: "right"}, 1000, function(){
$('#info_info'+idx).show("slide", {direction: "up"}, 1000);
});
})(i);
}
}
啊,我犯了一个错误......这个时候应该是正确的
#info_name和#info_info是不同的。 2个不同的元素。首先需要出现。 – NoNameZ 2012-04-04 15:20:58