gpt4 book ai didi

javascript - 返回元素上的事件不会在 jQuery 中触发

转载 作者:行者123 更新时间:2023-11-30 17:31:59 26 4
gpt4 key购买 nike

好的,我有一个棋盘,里面有所有的棋子和棋子。它是用二维数组中的两个四周期生成的 onload。这个想法是,你应该能够拖动一个棋子(我已经正确实现的东西),然后让它进入一个有效的位置。放手部分应该在实际的棋盘位置触发一个事件。所以 64 个点中的每一个都有一个看起来像这样的均匀听众。

element.on("mouseup",function(e){
if(Game.current==undefined||!$(this).hasClass("valid")){return;}
var col,row;
col = $(this).attr("column");
row = $(this).attr("row");
Game.current.attr({
"column":col,
"row":row
});
Game.move(Game.current);
Game.changeTurn();
Game.current = undefined;

});

当我点击棋盘上的一个方 block 时,该函数正常触发,但是当我将一个棋子拖放到那里时,它不会记录鼠标已抬起。它让我们离开棋子,但是因为光标直接在棋子上方并且所述棋子“阻止”光标直接位于该点上方。还值得注意的是,我的 HTML 结构是这样的。

<board>
<spot></spot>
<piece></piece>
</board>

我的意思是,兵、主教等不在地点内,因此事件没有任何可“冒泡”的东西。

最佳答案

更好的方法是将 mouseup 的监听器附加到窗口对象上,做这样的事情

$(window).on('mouseup', on_mouse_up );

然后,根据鼠标位置计算出正确的位置。

function on_mouse_up( e ) {
// Get the mouse position
x = e.pageX;
y = e.pageY;

// Calculate the spot from the mouse position

}

关于javascript - 返回元素上的事件不会在 jQuery 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22831404/

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