退出jquery中的函数

时间:2016-04-21 10:07:52

标签: javascript jquery jquery-ui

我用可拖动的ui创建了一个可拖动的项目。现在,当拖动特定元素时,我想触发一个函数startSwipe()。直到这里一切顺利......但是在我停止拖动之后,该功能保持活动状态,每次我再次悬停该元素时,该功能再次触发。

我做了一些研究,并遇到了这个问题How can I exit from a javascript function?

但是我很难在我的东西中实现它。

以下是代码:

function startDragging() {

    var $calendar = $(".calendar-tasks");

    $("li.allowed-to-drag", $calendar).draggable({

        revert: "invalid",
        helper: function (event, ui) {

            return $("<div class='task-image' style='z-index: 10000;'><span class='icon-pushpin'></span></div>").appendTo("body");

        },
        cursorAt: { left: 25 },
        zIndex: 100,
        start: function (event) {

            $(".previous-week a, .next-week a, .previous-month a, .next-month a").addClass("swipeable");

            startSwipe();

        },
        stop: function (event) {

            $(".previous-week a, .next-week a, .previous-month a, .next-month a").removeClass("swipeable");

            stopSwipe(); // A test if this would work...

        }

    });

}

function startSwipe() {

    $(".previous-week a, .next-week a, .previous-month a, .next-month a").mouseover(function(){

        console.log("hovered");

    });

    return;

}

function stopSwipe() {

    return;

}

非常感谢任何帮助。

jsFiddle:https://jsfiddle.net/amvk45nh/2/

1 个答案:

答案 0 :(得分:2)

startSwipe()函数上绑定一个事件,所以当你希望它停止时你应该取消绑定它。你可以试试这个:

function stopSwipe() {

    $(".previous-week a, .next-week a, .previous-month a, .next-month a").unbind('mouseover');

}