2011-08-09 92 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); 
    } 

現在的問題是,當我點擊一個消息確定它得到的答覆,但是當點擊一個新的,它只是將消息附加到舊消息中。所以可能有些問題我正在做,我不確定。

感謝

回答

0

我使用prototype.js,在那裏我有填充它,從一個Ajax調用之前清除DIV也有類似的問題。

嘗試,首先清空DIV:

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

沒有沒有做的伎倆:( – Sarah

+0

我改變了我的答案,不知道我是否應該做一個新的答案,但嘗試清空DIV作爲顯示在我的答案中。 – markoo