gpt4 book ai didi

javascript - 单击、拖动和调整大小事件混合在一起

转载 作者:行者123 更新时间:2023-11-30 18:32:18 25 4
gpt4 key购买 nike

我有一个 div,我想应用 clickdragresize 事件。但是,当我开始结束拖动时,单击事件被激活(与结束调整大小相同)。有谁知道如何避免这种情况?

我的代码看起来像这样:

$("#foo").click(function() {
//click handler
});

$("#foo").draggable({
stop: function() {//dragstop handler}
});

$("#foo").resizable({
stop: function() {//resizestop handler}
});

当我完成拖动元素时,将调用 dragstopclick 处理程序。与调整大小和单击相同。关于如何避免这种情况的任何想法?

最佳答案

click 事件在您将手指从鼠标按钮上移开时触发,您可以利用这一点。您可以在其他事件处理程序中设置一个标志,说明它们已被使用,如果是这样,您就不能在 click 事件处理程序中运行代码:

var doClick = true;
$("#foo").click(function() {

//check if the other event handlers were used, if they were then doClick will equal false and this `if` statement will resolve to false
if (doClick) {
//run code for click event handler here
} else {
//setup the flag for next-time
doClick = true;
}
}).draggable({
stop: function() {

//set flag to disallow click event handler
doClick = false;
}
}).resizable({
stop: function() {

//set flag to disallow click event handler
doClick = false;
}
});

另请注意,我更改了对 $('#foo') 选择的调用,因此不必选择该元素三次(现在只需一次)。

关于javascript - 单击、拖动和调整大小事件混合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9303119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com