Javascript jquery可调整大小的事件未结束
我正在制作一些交互式UI,并使用jquery调整大小和鼠标事件 我为所有元素绑定mouseOver和click事件,当我得到一个click时,我移除click监听器(这样它就不会与可调整大小的监听器交互) 到目前为止,这一切都很正常,现在可以调整所选元素的大小。开始调整大小工作正常,但即使在鼠标点击后,元素调整大小事件也不会结束,它仍然会用鼠标调整大小。 怎么了 东西就在这里 主要部分包括:Javascript jquery可调整大小的事件未结束,javascript,jquery,jquery-ui,javascript-events,jquery-ui-resizable,Javascript,Jquery,Jquery Ui,Javascript Events,Jquery Ui Resizable,我正在制作一些交互式UI,并使用jquery调整大小和鼠标事件 我为所有元素绑定mouseOver和click事件,当我得到一个click时,我移除click监听器(这样它就不会与可调整大小的监听器交互) 到目前为止,这一切都很正常,现在可以调整所选元素的大小。开始调整大小工作正常,但即使在鼠标点击后,元素调整大小事件也不会结束,它仍然会用鼠标调整大小。 怎么了 东西就在这里 主要部分包括: var inspect = true, // to disable inspe
var
inspect = true, // to disable inspect
selected = null; // currently selected event
function clickhandler(e) {
console.log('click');
if (selected != null)return; // if some div is already selected, then return
if (e.which == 3)return; // if it was right click, return
selected = $(e.target); // selected = the element which received the click
inspect = false; // disable inspection
selected.addClass('selected'); // add SELECTED background + border
$(window).unbind('click', clickhandler); // remove the click listener
$('.selected').resizable(); // make the selected element resizable
}
$(window).bind('click', clickhandler); //bind the click event
“Esc”键被绑定以取消选择任何选择。上下文菜单(正在侦听mouseclick事件)正在与resize end事件(也需要mouseclick事件)交互。解决方案:
$('.selected').resizable({
start:function () {
$("*").destroyContextMenu();
console.log('resize started');
},
stop:function () {
$("*").contextMenu({
menu:'myMenu'
},
function (action, el, pos) {
console.log(el);
eval(action + '(el)');
});
console.log('resize stopped');
},
resize:function () {
console.log("resize happened");
}
});
我所做的是,在调整大小开始时立即销毁上下文菜单,这样它就不会再监听mouseclick事件了。并在调整大小事件结束时返回。当我在其周围移动鼠标时,效果良好。当我点击时,不再有任何鼠标悬停动作,这是你想要的吗?我看不到无限的大小调整问题。@哦,为什么请尝试2-3次,有时不会发生,但大多数情况下会发生。。。是的,单击后鼠标盖会被删除,当你按“Esc”键时,鼠标盖会被重新添加。如果它能帮助任何人,如果你同时单击左键和右键,鼠标盖会成功停止调整大小。谢谢@John。。。如果它对任何人都有帮助,我使用的是contextMenu Js:。。。。这可能是在听鼠标点击上/下事件。@Pheonix-我也有类似的问题。我尝试了你在上面发布的解决方案。但是,在调整元素的大小一次后,这些元素将变得不可压缩。看看这里:我有同样的问题,但只是在IE中,有人有不同的解决方案吗?