【问题标题】:Setting Button Text for a jQuery UI Dialog为 jQuery UI 对话框设置按钮文本
【发布时间】:2012-08-08 22:05:33
【问题描述】:

我(成功地)设置 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 () {}
        }
    });
});
​

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

【问题讨论】:

  • @DavidThomas 哪个浏览器/操作系统?我在 Windows 7 机器、iPad 和 iPhone 上尝试过,但无济于事。哪个测试有效?两者都有效吗?

标签: jquery jquery-ui button jquery-ui-dialog


【解决方案1】:

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

这里是 bug-tracker 解释问题和当前解决方法。

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

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

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

DEMO

这里还有附加的SO Post,它链接在错误跟踪器中。

【讨论】:

  • 谢谢 - 找不到以前的 SO 帖子。
  • @Metalshark:同样在这里,我首先找到了错误跟踪器,然后才找到它的 SO Post,因为它已链接到错误跟踪器的 cmets 中。
【解决方案2】:

一个更简单的解决方案是在包含 jQuery 库之后使用这个 sn-p:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 2011-06-03
    • 2011-07-10
    • 2010-12-20
    • 2010-10-31
    • 2011-02-01
    • 2011-01-28
    相关资源
    最近更新 更多