在droppable div中的div中附加文本框

时间:2014-04-24 14:09:48

标签: javascript jquery html jquery-ui

我有一个div,我正在删除和附加文本框,这是完美的工作但问题是我在该div中有一个div(如部分),我必须删除并附加相同的文本框但它现在下降了两次,一个用于内部div而另一个用于外部div,但我只想要内部div。我试过谷歌,但找不到多少帮助。因此,如果有人对此有所了解,将会非常有帮助。 谢谢。

http://jsfiddle.net/Dw66V/

这是代码但不完整,因为它非常复杂

     $(function () {
                        var $Drag_tbox = $("#Drag_tbox"),                       
                            $drop_box = $("#tabs-1"),
                            $drop_box_sec = $("#secdiv");


                $Drag_tbox.draggable(
                        {
                            zIndex: 9003,
                            revert: "invalid",
                            helper: "clone",
                            drag: function (event, ui) {
                                num = 1;
                                return num;
                            }
                        });



                $drop_box_sec.droppable({
                    zIndex: 9003,
                    drop: function (event, ui) {

                            if (num == 1) {
                                $drop_box_sec.append('<tr><td align="center"><asp:Label runat="server" Text="Label"></asp:Label><input id="Text1" type="text" /></tr></td>');                          
                            }

                    }

                });


                $drop_box.droppable({
                    zIndex: 9003,
                    drop: function (event, ui) {

                            if (num == 1) {
                                $drop_box.append('<tr><td align="center"><asp:Label runat="server" Text="Label"></asp:Label><input id="Text1" type="text" /></tr></td>');

                            }                       

                    }



     });
});

1 个答案:

答案 0 :(得分:0)

好吧,当内部框的事件被触发时,您可以取消绑定外部框的事件,然后在完成时再次绑定它。如果你使用jQuery,你可以使用off()或unbind()。请发布您的代码,以便我参考。


看到代码后: http://jsfiddle.net/Dw66V/3/

我添加了一个可拖动的div。现在发生了什么,当内部元素上的内容被删除时,外部元素droppable被禁用,然后在短暂的超时后再次启用。

$drop_box_sec.droppable({
  drop: function (event, ui) {
    $drop_box.droppable('option', 'disabled', true);
    // Your code here
    setTimeout(function () {
      $drop_box.droppable('option', 'disabled', false);
    }, 500);
  }
});

更好的方式:)(通过Jquery drop callback of droppable method called twice

只需将“贪婪”选项添加到内部div,如下所示:

$drop_box_sec.droppable({
  greedy: true,
  drop: function (event, ui) {
    // Your code here
  }
});

这开箱即用。 http://jsfiddle.net/Dw66V/4/