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 投稿もあります。

于 2012-08-12T10:22:55.090 に答える
0

はるかに簡単な解決策は、jQuery ライブラリを含めた後にこのスニペットを使用することです。

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

これが修正された作業フィドルです。お役に立てれば。

于 2012-08-12T10:27:51.473 に答える