2011-08-09 7 views
0

私はここにこだわっていて、本当に助けてもらえます。 私は今、私はこのメッセージへの返信を得るメッセージをクリックするの部分で立ち往生twitterに似た何かを作成しようとしています。 これは私が今までに何をしてきたかです。Twitterに似たdiv onclickを開く

このメッセージの最後の返信を得るためにこの機能を使用します。

function getlastReply() 
{ 
    var reply_id; 
var msg_id = $("#flag").val(); 
$.ajax({ 
    type: "post", 
    url: "includes/getLastReplyID.php", 
    data: "MsgID="+msg_id, 
    success: function(reply_id) 
    { 
     $("#last_reply_id").val(reply_id); 
    } 
    }); 
} 

この関数の応答を取得し、divの

function getReplies(msg_id) 
{ 

//when clicked show another div 
    var getID = msg_id; 

    var this_reply = $("#last_reply_id").val(); 

    /// check if div is already open 
    var flag = $('#flag').val(); 

    // check the flag of msg id, if equal, close it, and set flag to zero 
    if(flag == getID) // hide it 
    { 
     $('#content2').css("z-index","-1"); 
     $('#content2').animate({ 
      left: '250px', 
     },250); 

     // set flag to 0 
     $('#flag').val(0); 
    } 
    else // show it 
    { 

     // check if another msg is opened , if yes, close it first 
     if(flag > 0) // hide it 
     { 
      $('#content2').css("z-index","-1"); 
      $('#content2').animate({ 
       left: '250px', 
      },250); 
     } 
     // end of check if another msg is opened , if yes, close it first 


     $('#content2').show(); 
     $('#content2').animate({ 
      left: '730px', 
     },250, function() { 
      $('#content2').css("z-index","1"); 
     }); 

    $.ajax({ 
    type: "post", 
    url: "includes/getReplies.php", 
    data: "Msg_ID="+msg_id+"&reply_id="+this_reply, 
    dataType: "xml", 
    success: function(data) 
    { 
    $(data).find("message").each(function() { 
    var msg_id = $(this).find("msg_id").text(); 
    var user_id = $(this).find("user_id").text(); 
    var msg = $(this).find("msg").text(); 
    var time = $(this).find("date_time").text(); 
    var user_name = $(this).find("user_name").text(); 

    var html = '<div media="true" class="stream-item " html -item-type="tweet" id="'+msg_id+'">'; 
    html += '<div class="more" onclick="getReplies('+msg_id+')">»</div>'; 
    html += '<input type="hidden" value=></input>'; 
    html += '<div class="stream-item-content tweet stream-tweet " html -user-id="1921671">'; 
    html += '<div class="tweet-content">'; 
    html += '<div class="tweet-row">'; 
    html += '<span class="tweet-user-name">'; 
    html += '<a class="tweet-screen-name user-profile-link" html>'+user_name+'</a>'; 
    html += '<span class="tweet-full-name"></span></span>'; 
    html += '<div class="tweet-corner">'; 
    html += '<div class="tweet-meta">'; 
    html += '<span class="icons">'; 
    html += '<div class="extra-icons">'; 
    html += '<span class="inlinemedia-icons"></span>'; 
    html += '</div>'; 
    html += '</span>'; 
    html += '</div>'; 
    html += '</div>'; 
    html += '<div class="tweet-row">'+msg+'</div>'; 
    html += '<div class="tweet-row">'; 
    html += '<a class="tweet-timestamp" title='+time+'><span class="_timestamp" html -time="1302776815000" html -long-form="true">'+time+'</span></a>'; 
    html += '<span>'; 
    html += '</span>'; 
    html += '<span >'; 
    html += '</span><b> Msg ID '+msg_id+'</b>'; 
    html += '</div><div class="tweet-row">';   
    html += '</div>'; 
    html += '</div>'; 
    html += '</div>'; 
    $("#reply_msg_div").prepend(html); 
    $("#last_reply_id").val(0); 
    $("#this_msg").val(0); 
    }); 
    } 
}); 
     // set flag to msg id 
     $('#flag').val(getID); 
    } 

に追加するには今の問題は、私はOKメッセージをクリックするだけで、新しいもので、それをクリックしたときに、それが応答を取得しますが、ということです古いメッセージにメッセージを追加します。だから私は何か間違っているかもしれない私は確信していません。

おかげ

答えて

0

は、私はAJAX呼び出しから、それを充填する前にdiv要素をクリアしなければならなかったprototype.jsのを使用して同様の問題を、持っていました。

試してみると、最初のdivを空:

$("#reply_msg_div").empty(); 
$("#reply_msg_div").prepend(html); 
+0

いいえ – Sarah

+0

が、私は私の答えを変更:(私は新しい答えをしたかどうかを、わからないが、トリックを行うが、試してみて、などのdivを空にしませんでした私の答えに示されています。 – markoo

関連する問題