2013-07-30 81 views
0

我正在使用套接字與JQuery,在對套接字的消息調用中我想附加一個div在我的HTML頁面,但一旦頁面被加載,我看到一個額外的div已經附加,如何可以我阻止它在頁面加載時附加。JQuery Append不能正常工作

其次當添加一個div有一個按鈕id = answerit內部div我添加了onclick功能。但是當DIV附加,並嘗試對答案按鈕就可以單擊它不會調用的onclick功能,但在重新加載頁面,然後它工作

我的代碼是

Student.socket.onmessage = function (message) { 
      //alert(message.data); 
      $(document).ready(function() { 
      var str = message.data; 
      var ques = str.split(":"); 
      var questionId = ques[0]; 
      var questionText = ques[1]; 
      var question = 
       "<div class='span11' style='border:2px solid; border-radius:5px; background-color:#b0c4de;'>"+ 
        "<div style='width:30px; float:left;'>" + 
         "<div class='voteup'><a id="+questionId+" vote='true' title='This answer is useful' style='cursor:pointer'>up</a></div>"+ 
         "<div class='votedown'><a id="+questionId+" vote='false' title='This answer is not useful' style='cursor:pointer'>down</a></div>"+ 
        "</div>"+ 
        "<div style='float:left;'>"+ 
         "<div style='margin-top:5px' class='span10'>"+ 
          "<span>"+questionText+"</span>"+ 
          "<button id="+questionId+" style='float:right' class='answerit btn'>Answer It</button>"+ 
          "<button id="+questionId+" style='float:right' class='showAnswers btn'>Show Answers</button>"+ 
         "</div>"+ 
        "</div>"+ 
       "</div>"; 
      $('#studentsQuestions').append(question); 
      }); 
     }; 

HTML是

<div id="studentsQuestions"></div> 

每次我打開一個網頁我看到一個額外的div已經存在未定義文本

感謝

+0

這是什麼都與Java本身呢? Java與JavaScript不同(爲了本網站的目的,它應該從未從ECMAScript重命名)。 – hexafraction

+0

爲什麼你的'.onmessage'處理程序中有'$(document).ready()'? – nnnnnn

+0

當我不使用它然後不會追加 – Wearybands

回答

2

如果你願意,你可以追加新內容前清理DIV#studentsQuestions

$("#studentsQuestion").empty().html(question); 
+0

也可以使用'$(「#studentsQuestion」)。empty()。append(question);'。 –

+0

問題是,如果附加了一些有效的div,並且有人會嘗試追加一個新的div,那麼以前的div將會被刪除 – Wearybands

+0

我想我應該在頁面加載時只調用一次 – Wearybands