簡體   English   中英

無法拖動動態添加的DIV

[英]Can't drag dynamically added DIV

我有一個ID為ID的DIV:TEST,可以使用jQuery UI進行拖動。 一切正常,但是一旦我將其刪除並動態地將DIV加載到HTML中(可以指定更多內容:使用SSE將DIV加載到HTML中),就不能拖動DIV。 這是因為jQuery是在DIV之前加載的。 如何解決這個問題? 由於我使用SSE,因此DIV在一段時間內會加載幾次。

jQuery代碼:

 $(function() {
      $( "#TEST" ).draggable({ 
         containment: "parent"             
      }).css({'cursor': 'all-scroll', 'z-index': '5'});
 });

DIV TEST已加載到稱為dragZone的另一個DIV中

<div id="dragZone" name="dragZone"> [div TEST is loaded here] </div>

加載SSE的JS:

 //HTML5 SSE(Server Sent Event) initilization
     this.initSevr=function(){
          sevr = new EventSource('test.php');
          sevr.onmessage = function(e){ 
              if(oldata!=e.data){
                  dragZone.innerHTML+=e.data;
                  oldata = e.data;
              }
          };     
     };

那么如何再次拖動DIV? 使用SSE將Div放入HTML中,這一切都可行。

您可能需要將可拖動的代碼移到loading事件中,如下所示:

 //HTML5 SSE(Server Sent Event) initilization
     this.initSevr=function(){
          sevr = new EventSource('test.php');
          sevr.onmessage = function(e){ 
              if(oldata!=e.data){
                  dragZone.innerHTML+=e.data;
                  oldata = e.data;

                  $( "#TEST" ).draggable({ 
                     containment: "parent"             
                  }).css({'cursor': 'all-scroll', 'z-index': '5'});
              }
          };     
     };

這是假設在使用innerHTML之后立即更新了DOM。 如果不是,則可能有必要使用簡短的setTimeout使其可拖動。

我認為您忘記了報價,請嘗試從

sevr = new EventSource('test.php);

sevr = new EventSource('test.php');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM