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

时间:2012-08-12 10:10:48

标签: 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>

示例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 () {}
        }
    });
});
​

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

2 个答案:

答案 0 :(得分:7)

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

以下是bug-tracker解释问题和当前的解决方法。

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

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

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

请参阅DEMO

以下是错误跟踪器中链接的其他SO Post

答案 1 :(得分:0)

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

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

Here 是您纠正的工作小提琴。希望这会有所帮助。