jquery无法处理从Ajax脚本调用的html

问题描述:

我看了一些其他帖子,我无法制作它们的正面或反面。当页面加载时,jquery工作正常,当相同的元素从ajax脚本加载时,jquest不起作用。我明白我需要做一个clal回来,但可以请一些人告诉我这是如何写的?jquery无法处理从Ajax脚本调用的html

HTML:

<div id="item-list2"> 
<div class="content drag-desired"> 
<div class="product"><img src="img/products/iPod.png" alt="iPod" width="128" height="128" class="pngfix" />iPod</div> 
<div class="product"><img src="img/products/iMac.png" alt="iMac" width="128" height="128" class="pngfix" />iMac</div> 
</div>     
</div> 

的jQuery:

$(document).ready(function(){ 

    $(".product img").draggable({ 

    containment: 'document', 
    opacity: 0.6, 
    revert: 'invalid', 
    helper: 'clone', 
    zIndex: 100 

    }); 

    $("div.content.drop-here").droppable({ 

      drop: 
        function(e, ui) 
        { 
         var param = $(ui.draggable).attr('src'); 

         if($.browser.msie && $.browser.version=='6.0') 
         { 
          param = $(ui.draggable).attr('style').match(/src=\"([^\"]+)\"/); 
          param = param[1]; 
         } 


         viewlist(param); 
         addlist(param); 
        } 

    }); 


}); 

阿贾克斯脚本:

function viewlist(param) 
{ 
    $.ajax({ 
    type: "POST", 
    url: "ajax/items.php", 
    data: 'img='+encodeURIComponent(param), 
    dataType: 'json', 
    beforeSend: function(x){$('#ajax-loader').css('visibility','visible');}, 
    success: function(msg2){ 

     $('#item-list2').append(msg2.txt); 

    } 
    }); 
} 

如果你把所有的可拖动/可弃的初始化代码放到一个函数,说init(),那么在回电时你只需要做:

success: function(msg2){ 
      $('#item-list2').append(msg2.txt); 
      // init draggable and droppable on replace elements 
      init(); 
     }