gpt4 book ai didi

javascript - 我们能否使 JQuery UI 可拖动/可排序以在鼠标右键上工作

转载 作者:可可西里 更新时间:2023-11-01 02:33:44 25 4
gpt4 key购买 nike

我有一个页面,该页面具有绑定(bind)到鼠标左右键的功能,即。鼠标左键可拖动/排序,鼠标右键可自定义上下文菜单。

我想做的是切换功能,使上下文菜单在单击鼠标左键时起作用,而 JQuery UI Draggable/Sortable 在单击鼠标右键时起作用。

感谢您的帮助。

PS:我可以让自定义上下文菜单在鼠标左键上工作。所以我只需要 JQuery UI Draggable/Sortable 方面的帮助。谢谢。

最佳答案

实际上,如果不破解 jQuery UI 代码是不可能的。

我不知道你为什么要使用这种行为,因为这会让你的最终用户感到困惑,但这里有一个可能的解决方案。

从这张 jQuery UI 票开始 http://bugs.jqueryui.com/ticket/6909我构建了一个自定义版本的 jQuery UI。因此,您必须使用该库的修改版本。

我禁用整个页面的浏览器右键单击默认菜单:

<body oncontextmenu="return false;">

或引用特定元素:

$("#sortable").bind("contextmenu",function(e){
return false;
});

以下是对 jQuery UI 代码的两个主要自定义编辑。

ui.mouse 默认选项中添加选项:

which:1

来自 jQuery UI 引用:

which (Number) Default: 1

A number that matches the "which" event property to indicate the mousebutton that is pressed. (0 = Any Button, 1 = Left Button, 2 = Middle Button, 3 = Right Button)

在函数 _mouseDown 中更改代码以读取此选项:

tnIsLeft = (event.which == this.options.which) // instead of this (event.which == 1)

理论上,在未来的 jQuery UI 版本中,这将得到支持而无需任何 hack。

这是一个有效的 fiddle :http://jsfiddle.net/IrvinDominin/nLdLu/

编辑

下面有一个pastebin版本的右键点击mod,包括:

  • Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js

链接:http://pastebin.com/nn3Pj0pM

通常修改后的副本不是什么好东西,您还可以扩展和覆盖让鼠标右键起作用所需的两个功能,但主要问题仍然存在:如果升级 jQuery UI,则必须检查兼容性或移植您的模组到更新的版本。据我所知,jQuery UI 2.x 将支持 which 实现。

希望这对您有所帮助。

关于javascript - 我们能否使 JQuery UI 可拖动/可排序以在鼠标右键上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672684/

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