当 JQuery 插件之间的事件发生冲突时,我该怎么办?
我有两个插件附加到父元素
和其子元素
。
父级附加了 JQuery UI 可选插件
,其子级附加了名为 jquery 上下文菜单。
使用jquery contextMenu plguin
,有一个应用了$.stopPropagation()
函数的mousedown事件
。
部分 contextMenu 代码:
(this).mousedown( function(e) {
var evt = e;
evt.stopPropagation();
$(this).mouseup( function(e) {
e.stopPropagation();
// more code below...
});
但同时,JQuery UI selectable
似乎使用 mousedown 事件
来进行元素选择,所以,因为 contextMenu< /code> ,
可选插件
无法再进行选择。
现在,我必须删除 contextMenu 的代码 $.stopPropagation()
和 selectable 插件
再次工作,我希望这种方式不会破坏 contextMenu 插件
。
最后,我应该怎么做才能让它们一起工作而不修改代码,因为这样做很危险?
非常感谢!!
I have tow plugins attach to the parent element
and its children
.
parent attached with JQuery UI selectable plugin
and its children attached with a plugin called jquery contextmenu.
With the jquery contextMenu plguin
,there is a mousedown event
with $.stopPropagation()
function applied.
partial of the contextMenu code:
(this).mousedown( function(e) {
var evt = e;
evt.stopPropagation();
$(this).mouseup( function(e) {
e.stopPropagation();
// more code below...
});
But at the same time,the JQuery UI selectable
seems to use the mousedown event
to make elements selection,so,because the contextMenu
,the selectable plugin
couldn't make selection any more.
Now,I had to remove the code $.stopPropagation() of contextMenu
and the selectable plugin
work again and I hope this way didn't break the contextMenu plugin
.
And finally , what should I do to make them work together without modify the code,because it is danger to do this??
Thank you very much!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过从事件处理程序中简单地“返回 false”?这将包含传播。
Have you tried simply "return false" from the event handler? This would contain the propagation.