Jquery 如果拖动,Fancybox将不激活

Jquery 如果拖动,Fancybox将不激活,jquery,drag-and-drop,fancybox-2,Jquery,Drag And Drop,Fancybox 2,我用它来制作一个可拖动的容器。它本质上是一个被“屏蔽”的时间表,可以左右拖动以查看一天中的更多内容 我还使用,以弹出更多的信息,每一个事件的时间表 拖动没有活动事件的明细表区域时,一切正常。当您开始在具有活动事件(.act)的区域上拖动时,当您释放拖动时,将打开Fancybox。这不是我想要的——我只是希望它停止拖动,不要打开Fancybox 我是否可以在open或beforeLoad函数中使用某种比较来取消箱子的实际打开?比如,如果鼠标向下的位置距离鼠标向上的位置超过10px 以下是我对活动项

我用它来制作一个可拖动的容器。它本质上是一个被“屏蔽”的时间表,可以左右拖动以查看一天中的更多内容

我还使用,以弹出更多的信息,每一个事件的时间表

拖动没有活动事件的明细表区域时,一切正常。当您开始在具有活动事件(.act)的区域上拖动时,当您释放拖动时,将打开Fancybox。这不是我想要的——我只是希望它停止拖动,不要打开Fancybox

我是否可以在open或beforeLoad函数中使用某种比较来取消箱子的实际打开?比如,如果鼠标向下的位置距离鼠标向上的位置超过10px

以下是我对活动项目的代码:

$("#schedule .act").fancybox({
    openEffect:     'none',
    closeEffect:    'none',
    autoSize:       false,
    autoWidth:      false,
    autoHeight:     true,
    minHeight:      275,
    autoResize:     true,
    width:          500,
    padding:        [50, 60, 0, 60],
    arrows:         true,
    loop:           false,
    closeBtn:       '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;">Close</a>',

    beforeLoad: function() {        
        $time = $(this.element).data('time');
        $type = $(this.element).data('type');
        $titl = $(this.element).data('title');
        $desc = $(this.element).data('desc');
        this.content = "<span class='time " + $type + "'> " + $time + " </span>" + "<span class='title'>" + $titl + "</span>" + "<div class='desc'>" + $desc + "</div>";
    }
});
$(“#schedule.act”).fancybox({
openEffect:'无',
closeEffect:'无',
自动调整大小:false,
自动宽度:false,
自动高度:正确,
身高:275,
自动调整大小:正确,
宽度:500,
填充:[50,60,0,60],
箭头:是的,
循环:false,
closeBtn:“”,
beforeLoad:function(){
$time=$(this.element).data('time');
$type=$(this.element).data('type');
$titl=$(this.element).data('title');
$desc=$(this.element).data('desc');
this.content=“++$time++++++$titl++++++++$desc++”;
}
});

我明白了。最困难的是让这个班被开除。我尝试使用hover states,然后使用mouseleave,但是当开始拖动时,直到释放拖动之后,类才会被删除(即使鼠标离开元素)。我的解决方案是在初始化fancybox调用之前:

var clickDrag;
$("#schedule .act").mousedown(function() {
    $(this).addClass("hovered");
    clickDrag = $(this);
    $("#schedule .act").mousemove(function() {
        $(this).removeClass("hovered");
    });
});
然后,在fancybox调用中的beforeLoad中,我添加了:

if (!($(clickDrag).hasClass("hovered") ) ) {
    $.fancybox.cancel();
    return;
}

我明白了。最困难的是让这个班被开除。我尝试使用hover states,然后使用mouseleave,但是当开始拖动时,直到释放拖动之后,类才会被删除(即使鼠标离开元素)。我的解决方案是在初始化fancybox调用之前:

var clickDrag;
$("#schedule .act").mousedown(function() {
    $(this).addClass("hovered");
    clickDrag = $(this);
    $("#schedule .act").mousemove(function() {
        $(this).removeClass("hovered");
    });
});
然后,在fancybox调用中的beforeLoad中,我添加了:

if (!($(clickDrag).hasClass("hovered") ) ) {
    $.fancybox.cancel();
    return;
}

当你说,
拖动一个区域时
是指使用NiceSoll创建的条吗。。。在桌面或移动设备上?使用nicescroll的触摸行为,单击并拖动元素并四处移动。当您说,
拖动区域时
是指使用nicescroll创建的条形图吗。。。在桌面或移动设备上?使用nicescroll的触摸行为,单击并拖动元素并四处移动。