【问题标题】:Bug in jQuery resizable可调整大小的 jQuery 中的错误
【发布时间】:2011-11-19 02:16:01
【问题描述】:

我在 jQuery UI 的 Resizable 中遇到了一个错误,试图将它与 jQuery UI 的对话框一起使用,当给定选择器或 DOM 元素时,它不尊重 containment 选项,并且在调整大小时通常表现得非常奇怪。

我基本上是这样做的:

dialog = $('<div>...</div>').dialog(options)
dialog.parent().draggable(options).resizable(options)

所以我需要另一种方法来进行控制以调整大小。

有没有一种方法可以模拟遏制,也许是通过resizable 调用的resize 回调?我可以在哪里检查 div 在调整大小时是否会太大,然后将其强制为可接受的大小?

【问题讨论】:

  • 也发布您的代码和行为;也许我们可以弄清楚为什么它会给您带来意想不到的结果。
  • @JonathanM 我正在​​研究一个重现问题的最小样本,但我的网页已经非常大,需要一段时间才能弄清楚是什么环境产生了不良行为。同时,你知道这个问题的直接答案吗?
  • @JonathanM 我添加了一些信息,看看是否有帮助,仍在研究示例...

标签: jquery resizable simulate


【解决方案1】:

根据我的经验,您不能只在对话框对象本身上调用.draggable()

它也无助于 jQueryUI 将每个对话框元素重新添加到 &lt;body&gt; 标记中。

试试这个:

// create the dialog
var w = $('<div>');
...
$(w).dialog(dlg_options);

// reparent the dialog, and reset the draggable options
var dlg = $(w).data('dialog').uiDialog;
$(dlg).appendTo(real_parent);
$(dlg).draggable(drag_options);

请注意,这种隐藏的 jQueryUI 内部 (.uiDialog) 的使用可能在未来的版本中中断。

【讨论】:

  • 抱歉,我不小心漏掉了resizable(options) 电话,这就是问题所在,而不是draggable
  • @SethCarnegie 同样适用 - 使用 $(dlg).resizable() 和上面的 .uiDialog 数据成员。
  • 或者可能是$(dlg).data().resizable
  • 不,我仍然得到相同的结果。对话框本身只是上下调整大小,但里面的div横向调整大小,甚至不尊重包含div。
  • @SethCarnegie 你需要提供一个例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
相关资源
最近更新 更多