gpt4 book ai didi

带有 jQ​​uery 1.8 的 jQuery UI 1.8.22 对话框按钮中没有文本

转载 作者:行者123 更新时间:2023-12-03 21:48:34 25 4
gpt4 key购买 nike

我去检查最近发布的 jQuery 1.8(稳定版)是否与我当前正在开发的项目兼容,令我惊讶的是,这是我看到的第一件事:

enter image description here

这对我来说是一个惊喜,因为我已经升级到 jQuery UI 1.8.22,根据其 release post ,兼容jQuery 1.8。

回调函数被调用,但按钮没有 textNode,正如我们在 DOM 检查器中看到的那样:

enter image description here

到目前为止我找到的解决方案是:

  1. 降级回 jQuery 1.7.2(不过我想在我的页面中使用最新的 jQuery 版本)
  2. 升级到 jQuery UI 1.9.0pre(不稳定)
  3. 使用 open 处理程序或手动编辑对话框的 HTML 以包含我想要的文本。源代码中的错误似乎带来了很多不必要的麻烦。

我错过了什么还是这是一个真正的错误?

这是我用于演示的 fiddle :

jsFiddle

以及供将来引用的代码:

HTML:

<div id="foo" title="Dialog title">Dialog text</div>

JS:

$('#foo').dialog({
buttons: {
Yes: function() { $(this).dialog('close'); },
No: function() { $(this).dialog('close'); }
}
});

最佳答案

编辑:

这是BugTracker ticket .

一个更简单的解决方案是在包含 jQuery 库后使用此代码段:

if ( $.attrFn ) { $.attrFn.text = true; }

jsFiddle

当 jQuery UI 1.8.23 发布时,这个问题应该会得到解决。来自 BugTracker 票证页面的 scott.gonzalez 的积分。

编辑:此问题已在 UI 1.8.23 中修复。 .

<小时/>

我的旧解决方案:
(如果您遇到上述问题,请使用它)

我已临时修复此问题(直到发布 UI 或核心的新稳定版本)。

jQuery 1.8 与 jQuery UI 1.8.22 交互时存在一个错误,该错误将文本存储在父 buttontext 属性中,而不是创建 textNode span.ui-button-text 内的:

enter image description here

在初始化 jQuery UI 对话框或任何其他具有此 UI 按钮错误的界面后使用此代码段:

//iterate through all UI button text spans in the document
$('.ui-button-text').each(function() {
var $this = $(this);
if ($this.text() == '') //if it has no text (bugged)
$this.text($this.parent().attr('text')); //sets the text which was passed
});

jsFiddle

该脚本在执行任何操作之前都会检查 UI 按钮是否没有文本,因此即使您在升级到 future 无 bug 的 core/UI 版本时忘记了它,保留它也无害。

如果您有更好的解决方案或有关此错误的信息,我很乐意接受。 =]

请注意,如果您等不及稳定版本并且仍想使用最新的稳定版本,则可以降级到 jQuery 1.7.2 或使用问题中提到的 UI 1.9.0 预版本。

关于带有 jQ​​uery 1.8 的 jQuery UI 1.8.22 对话框按钮中没有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907661/

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