gpt4 book ai didi

jquery - 检查特定元素上是否发生 mousedown() 事件

转载 作者:行者123 更新时间:2023-12-01 07:41:24 25 4
gpt4 key购买 nike

我使用此函数来检测 mousedown() 并初始化内容拖动:

        var mouseDown = false;
var prevCoords = { x: 0, y: 0 };

$("#mainDiv").mousedown(function() {
mouseDown = true;
}).mousemove(function(e) {
var currentScrollX = $('#mainDiv').scrollLeft();
var currentScrollY = $('#mainDiv').scrollTop();
if(mouseDown) {
$('#mainDiv').scrollLeft(currentScrollX + prevCoords.x - e.clientX)
$('#mainDiv').scrollTop(currentScrollY + prevCoords.y - e.clientY)
};
prevCoords.x = e.clientX;
prevCoords.y = e.clientY;
}).mouseup(function() {
mouseDown = false;
});

但是#mainDiv包含本身可拖动的.foo表。如何检查 mousedown() 是否发生在 .foo 表上?在这种情况下,mouseDown 应变为 false 以取消内容拖动。我已经尝试过,但没有成功:

        $("#mainDiv").mousedown(function() {
if($('.foo').mousedown()){
mouseDown = false;
}
else{
mouseDown = true;
}

最佳答案

要检查哪个元素导致了冒泡到 #mainDiv 的事件,您可以检查事件的target。您还可以使逻辑更加整洁:

$("#mainDiv").mousedown(function(e) {
mousedown = !$(e.target).closest('.foo').length;
});

关于jquery - 检查特定元素上是否发生 mousedown() 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47672642/

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