3

这是我的代码。我添加了一些类并删除了它的一些功能。CSS 很好地代表了设计,但是当我想使用已添加到此函数中的类时,jQuery 无法做到这一点。我怎样才能为这些使用直播或'on'功能?如何访问这些类以droppable再次在函数中使用它们?

$( ".droppable" ).droppable({
    drop: function( event, ui ) {
        $(this).removeClass('droppable');
        $(this).removeClass('ui-droppable');

        var dragIMG = '<img class="dragBox ui-draggable" data-type="'+img+'" src="img/'+img+'.jpg" alt="" style="position: relative;"/>';
        $(this).append(dragIMG);
        $('#box'+box).empty();
        $('#box'+box).addClass('droppable');
        $('#box'+box).addClass('ui-droppable');
    }
});
4

2 回答 2

4

据我所知,您不能像委派事件处理程序那样委派插件。选择器选择在执行时匹配的元素,然后运行插件代码以对这些元素进行所需的任何初始化。稍后将与选择器匹配的任何新元素都不会调用该初始化代码。

您需要再次调用插件函数。像这样的东西应该工作:

var droppableOptions = {
    drop: function (event, ui) {
        $(this).removeClass('droppable');
        $(this).removeClass('ui-droppable');

        var dragIMG = '<img class="dragBox ui-draggable" data-type="' + img + '" src="img/' + img + '.jpg" alt="" style="position: relative;"/>';
        $(this).append(dragIMG);
        $('#box' + box).empty().addClass('droppable').addClass('ui-droppable').droppable(droppableOptions);
    }
}

$('.droppable').droppable(droppableOptions);
于 2013-05-22T13:53:56.740 回答
-2

或者您可以使用名为 livequery ( https://github.com/brandonaaron/livequery ) 的插件并调用可拖动函数。

例子

$('a') 
.livequery('click', function(event) { 
    alert('clicked'); 
    return false; 
});
于 2013-05-22T13:57:19.003 回答