4

我是 jQuery 的新手。但我想在我的项目中使用它的拖放功能。当我拖动我的项目时,我想调用一个函数但不取消我的拖动。我想在运行该功能后仍然持有该项目。

这是代码的一部分:

 $(settings.columns).sortable({
        items: $sortableItems,
        connectWith: $(settings.columns),
        handle: settings.handleSelector,
        placeholder: 'widget-placeholder',
        forcePlaceholderSize: true,
        revert: 300,
        delay: 100,
        opacity: 0.8,
        containment: 'document',
        ghosting: true,
        start: function (e,ui) {

            $(ui.helper).addClass('dragging');
    **// here is the place I would like to call a function.**
             **//example gotoPage(2);**

        },
        stop: function (e,ui) {
           $(ui.item).css({width:''}).removeClass('dragging');
           $(settings.columns).sortable('enable');
            /* Save prefs to cookie: */
           iNettuts.savePreferences();



        }
    });

当我将调用代码放入其中时,start()它会运行该函数,但也会取消拖动。基本上,我想仍然保留该项目并在后面运行该功能。我希望我已经说得够清楚了。如果没有,请询​​问。

4

4 回答 4

0

它是一个旧帖子,但是,现在有一个使用“拖动”事件的解决方案:

http://jqueryui.com/draggable/#events

移动 div 时会触发拖动事件。

于 2014-10-06T14:06:08.740 回答
0

尽管我从未尝试过以下方法,但我会尝试采取一些不同的方法。

为什么不直接把函数写成点击呢?

$(settings.columns).click(function(e,ui){
    //whatever you want to do
});

我不明白为什么这不起作用——只要你点击一个项目来拖动它,这个事件就会被触发。

于 2011-08-04T18:57:19.327 回答
0

这是您需要做的,使用拖动回调:

  $(".your-drag-drop-class").draggable({
    revert: "invalid",
    cursor: "move",
    stack: ".draggable",
    helper: 'clone',
    drag: function(event, ui) {
      $(this).addClass("draggable-inmotion");
    }
  });
于 2022-01-06T22:53:41.530 回答
-1

也许调用函数会导致您失去对被拖动元素的关注。

于 2011-08-04T18:48:28.433 回答