2012-08-12 88 views
4

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

最近改变的唯一的事情是我们已经转移到jQuery 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() {} 
     } 
    }); 
}); 
​ 

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

+0

@DavidThomas哪个浏览器/操作系统?我试过在Windows 7盒子,iPad和iPhone上无济于事。哪个测试有效?两者都有效吗? – Metalshark 2012-08-12 10:13:40

回答

7

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

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

为了方便起见,我们直接链接到ticket本身,它已经被修复并且被设置为包含在1.8.23版本中。

添加下面的代码行你的脚本将再次使对话工作:

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

DEMO

这里也是额外SO Post这是在bug跟踪器相连。

+0

谢谢 - 无法找到以前的SO贴。 – Metalshark 2012-08-12 10:30:31

+0

@Metalshark:同样在这里,我发现了错误跟踪器,并且仅在SO Post中,因为它在错误跟踪器的注释中被链接。 – Nope 2012-08-12 10:31:46

0

一个更简单的解决方案是包括jQuery库后,使用此片段:

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

Here是你的修正后加工小提琴。希望这可以帮助。