2010-08-08 65 views
0

我想使用jquery进行拖放阶段,我遇到了问题,我只想在droppable框内单个项目。但现在,它正在添加多个项目。这是我的代码。Jquery Droabble Box Limit

$("#item_list_2").droppable({ 
     drop: 
       function(e, ui) 
       { 
        var param = $(ui.draggable).attr('src'); 
        var div_id = '#'+ $(this).attr("id"); 

        addlist(param,div_id); 
       } 
}); 

addlist()是使用ajax创建项目内容的函数。我有什么办法可以限制我的#item_list_2只能获得一个可拖拽对象。

感谢

回答

0

您可以实现在可投放的接受选项,当你有一个元素已经下降到禁用它(你必须实现该条件取决于你的情况下):

$("#item_list_2").droppable({ 
     accept: function() { 
      return elementsAlreadyDropped == 0; //<-- Implement for your concrete case 
     }, 
     drop: 
       function(e, ui) 
       { 
        var param = $(ui.draggable).attr('src'); 
        var div_id = '#'+ $(this).attr("id"); 

        addlist(param,div_id); 
       } 
}); 
+0

你必须把有一个条件检查是否有可放下的前一个元素。实施取决于你的情况。如果你可以共享addlist funcion实现,我可以试着帮你一个具体的实现。 – ggarber 2010-08-09 11:02:42

+0

感谢gustavogb的帮助。有一件事是不可理解的 我说 返回elementsAlreadyDropped == 0; 你可以请解释一些关于“elementsAlreadyDropped”,以及如何检查对象是否已经被删除。其实我总共有8个项目要放在20个以上的盒子里。 非常感谢 – kakaajee 2010-08-09 11:03:38

+0

功能addlist(PARAM,div_id) { \t $就({ \t类型: “POST”, \t URL: “AJAX/addtobox.php”, \t数据: 'IMG =' + encodeURIComponent方法数(param) \t数据类型: 'JSON', \t beforeSend:函数(X){$('#Ajax的装载机)的CSS( '知名度', '看得见');}, \t成功:功能(msg){ \t \t $('#ajax-loader').css('visibility','hidden'); \t \t if(parseInt(msg.status)!= 1) \t \t { \t \t \t return false; \t \t} \t \t其他 \t \t { \t \t \t $(div_id).append(msg.txt); \t \t} \t}); \t} } 我不知道为什么它不是以代码格式显示在注释中 – kakaajee 2010-08-09 11:08:17