将事件从“ mousedown”更改为“ drag”

时间:2019-02-23 02:49:49

标签: jquery drag-and-drop mouseevent onmousedown

我使用一个称为“可拖动”的脚本,该脚本在mousedown时启动。 问题是我已经需要保留在mousedown上发生的排序功能,我希望在拖动而不是单击单元格时触发此可拖动功能。哪种才有意义。

总而言之,我想在单击一个单元格时触发一个事件,而在拖动它时触发另一个事件。

这是可拖动脚本的一部分,它启动了我仅希望在“拖动”时触发的鼠标按下(这会阻止其他操作按原样进行):

    el.delegate(o.items, 'mousedown.' + self.widgetEventPrefix, function(e){

        var $handle = $(this),
        elementOffsetTop = self.element.position().top;

        if( $handle.hasClass( o.handle ) ){
            $handle = $handle.closest('th');
            e.currentTarget = $handle.closest('th')[0]
        }

        self.getCol( $handle.index() )
            .attr( 'tabindex', -1 )
            .focus()
            .disableSelection()
            .css({
                top: elementOffsetTop,
                left: ( self.currentColumnCollectionOffset.left + o.appendTarget[0].scrollLeft )
             })
            .appendTo(o.appendTarget)
        self._mousemoveHandler(e);
    });

在询问之前,我总是会尝试展示一些内容,但是在这里,我只是被卡住了。 我不知道该如何进行。完全一样。

我在Stack Overflow中发现了一些变通方法来模拟拖动事件,但是它们并不适合此脚本(即:How to distinguish mouse "click" and "drag")。此处引发事件的方式使我感到困惑,因为其中包含变量,而且我不知道如何处理它们:

el.delegate(o.items, 'mousedown.' + self.widgetEventPrefix, function(e){..})

但是,我尝试了一件事,它正在脚本中的所有位置都删除了“ disableSelection()”函数,以便可以触发其他操作,但它不起作用。仍然有两个动作在争夺同一事件。

任何帮助将不胜感激。

0 个答案:

没有答案