javascript - jquery ui:在不存在的div上调用.droppable不起作用

时间:2011-01-11 23:31:43

标签: javascript jquery jquery-ui

我有一个像这样的代码:

$('div.widgetDroppable').droppable({
    accept: 'li.widget',
 drop: function(event, ui) { 
     self.dropEventHandler(event, ui, $(this));
 }
});

我允许用户以dinamically方式添加许多widgetDroppable div(通过类似$('#page').append(SOME_HTML_CODE)的代码):问题(实际上这不是真正的问题,但我不喜欢这种方式)是如果我在创建任何widgetDroppable div之前放置前面的代码它将无法工作,似乎它不会将'droppable'事物绑定到div,因为目前还没有其中任何一个。我必须将该代码放在一个方法中,该方法在用户添加div时随时调用,但我想避免这种情况。这可能吗?

另外,我不明白这是否是jQuery中的默认行为,因为我注意到对于其他类型的div,代码显然仍在工作,即使它们尚未创建。

1 个答案:

答案 0 :(得分:1)

您可以使用livequery解决此问题。

您的代码看起来像这样:

$('div.widgetDroppable').livequery(function(){
    $(this).droppable({
        accept: 'li.widget',
        drop: function(event, ui) { 
            self.dropEventHandler(event, ui, $(this));
        }
    });
});