2013-07-30 50 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