【问题标题】:jQuery containment not working on chrome,safarijQuery遏制不适用于chrome,safari
【发布时间】:2012-06-07 19:02:03
【问题描述】:

我在代码中添加了一些可拖动的对象,包含问题。在 chrome 中,对象可以移动到 div 的外侧,否则容器不起作用

这是我的示例网址:Circle Dagger

(当您将对象拖到右侧的末尾时会发生这种情况,然后将另一个对象拖到右侧它可以移动到 div 之外) 请帮帮我

【问题讨论】:

  • 你真的应该添加一个文档类型,没有一个我认为这不适用于所有浏览器。它实际上在 Chrome 中对我来说似乎可以正常工作,但在 Ie 中却不行(如果我手动退出 quirks 模式。在 quirks 模式下它根本不起作用,不可拖动)
  • 现在我添加了 ttp://www.w3.org/TR/html4/loose.dtd" rel="nofollow" target="_blank">w3.org/TR/html4/loose.dtd"> 那里仍然很糟糕
  • 当你把一个对象拖到右边的末端,然后再把另一个对象拖到右边的末端,你可以把它拖到div之外
  • 我注意到您在其中的svg 元素也溢出了容器之外。这是预期的吗?我不明白这与球溢出有什么关系,但也许这是一个线索?
  • svg 用于在球之间添加线 :)(这条线是用 plumbjs 框架生成的),有没有解决这个问题的方法

标签: jquery google-chrome safari drag-and-drop jsplumb


【解决方案1】:

overflow: hidden 添加到div.wraproundx

由 jsPlumb 插件创建的铅垂线会创建 svg 元素,这些元素会溢出容器的边界。显然Chrome和jQuery UI在这方面存在问题,所以你必须设置overflow: hidden

【讨论】:

  • 这对我也有用,虽然我使用的是没有 jsPlumb 的纯 jquery-ui。
【解决方案2】:

尝试将其用作遏制

[
    $('#id'+randID).offset().left, 
    $('#id'+randID).offset().top,
    $('#id'+randID).offset().left+616,
    $('#id'+randID).offset().top+50
]

而不是包含:$('#id') 并通过替换 (616) 和 (50) 进行调整,它在 chrome 和 FF 上工作正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    相关资源
    最近更新 更多