jQuery UI 不同的掉落事件,取决于可掉落物 class

jQuery UI different drop events, depending on droppable class

我有 2 个不同的可丢弃 classes。我想根据放置在哪个可放置 class 元素上执行不同的放置事件(dropBar、dropTile)。这是我的代码:

$(".droppable-tile").droppable({
      accept: '.draggable-task, .task, .daily-task',
      tolerance:  'pointer',
      hoverClass: "tile-draggable-hover",
      drop: dropTile 
    });
$(".droppable-bar").droppable({
      accept: '.draggable-task, .task, .daily-task',
      hoverClass: "tile-draggable-hover",
      tolerance:  'pointer',
      drop: dropBar
});

如您所见,这 2 个可掉落物几乎相同,唯一的区别是事件掉落。有没有办法合并这些可删除的语句,以免重复代码?我需要在这些 ondrop 函数中添加我使用 event,ui, $(this) variables/keywords。

你可以这样做:

$(".droppable-bar,.droppable-tile").droppable({
        accept: '.draggable-task, .task, .daily-task',
        hoverClass: "tile-draggable-hover",
        tolerance: 'pointer',
        drop: function (ev, ui) {
            // Check droppable element by class
            if ($(this).hasClass('droppable-tile')) {
                // your droppable-tile code
            }
            else if ($(this).hasClass('droppable-bar')) {
                // your droppable-bar code
            }
        },

    });

Online output (jsfiddle)