当 JQuery 插件之间的事件发生冲突时,我该怎么办?

发布于 2024-10-17 07:50:44 字数 911 浏览 2 评论 0原文

我有两个插件附加到父元素其子元素

父级附加了 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

送你一个梦 2024-10-24 07:50:44

您是否尝试过从事件处理程序中简单地“返回 false”?这将包含传播。

Have you tried simply "return false" from the event handler? This would contain the propagation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文