设置jQuery UI对话框的按钮文本

Met*_*ark 4 jquery jquery-ui button jquery-ui-dialog

我(成功)设置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>
Run Code Online (Sandbox Code Playgroud)

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 () {}
        }
    });
});
?
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到任何错误.我们总是使用对象测试方法,但文档现在提到了数组测试方法.

Nop*_*ope 7

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

以下是错误跟踪器解释问题和当前的解决方法.

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

将以下代码行添加到脚本中将使对话框再次起作用:

if ( $.attrFn ) { $.attrFn.text = true; }
Run Code Online (Sandbox Code Playgroud)

DEMO

这也是在bug追踪器中链接的附加SO Post.