4

我(成功)设置 jQuery UI 对话框按钮文本的所有地方都已停止工作。按钮出现并且功能正常,但是在所有测试的浏览器(IE、Safari、Chrome、Firefox 和 Opera)中都没有显示文本。使用 Chrome 的检查器和 Firebug,似乎文本甚至没有设置在按钮上,而不是 CSS 问题)。

最近唯一改变的是我们已经使用 jQuery UI 1.8.22 迁移到 jQuery 1.8.0,并且无法再次降级。

可以在 jsFiddle http://jsfiddle.net/F7pGu/上找到一个简化的示例

示例 HTML

<div id="form">
    <h1>Blah</h1>
</div>

<button id="array-test">Array Test</button>
<button id="object-test">Object Test</button>

​<strong>示例 JavaScript:

var $form = $('#form'),
    $arrTest = $('#array-test'),
    $objTest = $('#object-test');

$arrTest.click(function(){
    $form.dialog({
        buttons: [
            {
                text: 'Cancel'                
            },
            {
                text: 'Save'
            }
        ]
    });
});

$objTest.click(function(){
    $form.dialog({
        buttons: {
            'Cancel': function () {},
            'Save': function () {}
        }
    });
});
​

我在阅读文档时找不到任何错误。我们一直使用 object-test 方法,但文档现在提到了 array-test 方法。

4

2 回答 2

7

我做了一些研究,因为这确实是一个奇怪的问题。原来是一个已知问题,并且已经为它创建了一个错误跟踪器。

这是解释问题和当前解决方法 的错误跟踪器。

为方便起见,这里是票证本身的直接链接,该票证本身已经修复并设置为包含在 1.8.23 版本中。

将以下代码行添加到您的脚本将使对话框再次工作:

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

演示

这也是错误跟踪器中链接的附加SO Post 。

于 2012-08-12T10:22:55.090 回答
0

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

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

是为您纠正的工作小提琴。希望这可以帮助。

于 2012-08-12T10:27:51.473 回答