我用可拖动的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/
答案 0 :(得分:2)
在startSwipe()
函数上绑定一个事件,所以当你希望它停止时你应该取消绑定它。你可以试试这个:
function stopSwipe() {
$(".previous-week a, .next-week a, .previous-month a, .next-month a").unbind('mouseover');
}