0

h2ヘッダーを右から左にスライドさせ、上から下の情報にスライドするメニューを作成したいと思います。メニューが既に存在する場合に別のオプションをクリックすると、最初に上に移動し、それ以外はそのままにしておきます。したがって、主な問題は、いくつかの方法で 1 つではなく 2 つの情報を表示する必要があり、その方法がわかりません。すべてが次々に実行されます。コールバックを使用すると、一部のテキストが 2 回以上表示されます...

$("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();
}
4

1 に答える 1

0
 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 );
    }
  }

ああ、私は間違っています... 今回は正しいはずです

于 2012-04-04T15:08:42.233 に答える