2011-02-17 30 views
7

我有一個奇怪的錯誤與對話框發生,我加載對話框罰款,但每當我分配一個按鈕,雖然它會顯示按鈕,它贏得' t顯示按鈕的名稱。這裏是我的代碼,啓動成功的對話框......jQueryUI對話框 - 按鈕文本不出現

jQuery('#'+message_div_id).dialog({ 
    modal:  ui_popup_modal 
, width:  ui_popup_width 
, height:  ui_popup_height 
, resizable: false 
, draggable: false 
, buttons: { 
        "Ok": function() { 
         jQuery(this).dialog("close"); 
        } 
       } 
}); 

這是從Bugzilla的彈出後生成的HTML加載...

< button type="button" text="Ok" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">< span class="ui-button-text">< /span>< /button> 

跨度類應包含的區域文字,但正如你所看到的,事實並非如此。有任何想法嗎?

+0

你能提供這個jsFiddle嗎?我無法重現您的問題。 – Exelian 2011-02-17 16:01:54

+0

你確定對話框的高度或寬度足夠嗎? – DavideDM 2011-02-17 16:06:56

+0

無論寬度/高度設置如何,它仍然顯示爲空白。似乎失去了沿途的按鈕名稱。 – Vin 2011-02-17 16:29:28

回答

0

我認爲有一些缺失。很高興看到它的工作。我試圖創建一個測試,我沒有得到任何文本,但css丟失。如果我這樣做,它的工作原理:

<button type="button" text="Ok" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Text Here</span></button> 
0

對不起,新的SO。

無論如何,正如這段代碼只是一塊更大的功能,併爲我解決不了經由jQueryUI的網站示例代碼的問題的一部分,我結束了這個解析:

var button1_text = ''; 

(ui_popup_but1 != '') ? button1_text = ui_popup_but1 : button1_text = 'OK'; 

jQuery('button[text="button1"] span').html(button1_text); 
4

這給了我很多啓發,但它並不適用於我,我做了以下修改。我認爲這樣效果更好。

$('div.ui-dialog-buttonset button.ui-button span.ui-button-text').each(function() { 
    $(this).html($(this).parent().attr('text')); 
}); 
0

我有類似的問題。最後通過升級當前使用的從1.3.2到當前(1.7.1)的jQuery版本來解決此問題。我只注意到,我使用的jQuery UI版本不是當前版本(1.8.11與1.8.18的當前版本)。我會嘗試將jQuery降級並將jQuery UI升級到當前版本,然後查看會發生什麼情況。

編輯:jQuery UI 1.8.18修復了使用jQuery 1.3.2和1.7.1的問題,所以它看起來像1.8.11有一個缺陷,導致它與1.3.2不兼容(我假設它應該是自18年以來,我認爲他們不會改變這種小版本變化之間的兼容性)。

4

這對我的作品與jQuery UI v1.8.22 CDN(測試):

$('div.ui-dialog button.ui-button').each(function() { 
    $(this).children('.ui-button-text').html($(this).attr('text')); 
}); 
0

有同樣的問題,並最終修補jQuery的ui.js

--- jquery-ui-1.8.23.js 2012-09-14 11:18:34.000000000 +-1000 
+++ jquery-ui-1.8.23.js 2012-09-14 11:31:07.000000000 +-1000 
@@ -9088,13 +9088,16 @@ 
        .appendTo(uiButtonSet); 
       // can't use .attr(props, true) with jQuery 1.3.2. 
       $.each(props, function(key, value) { 
        if (key === "click") { 
         return; 
        } 
-     if (key in button) { 
+     if (key == "text") { 
+      button.html(value); 
+     } 
+     else if (key in button) { 
         button[ key ](value); 
        } else { 
         button.attr(key, value); 
        } 
       }); 
       if ($.fn.button) { 
0

我有同樣的問題,但它沒有文字的原因是我有依賴性問題。簡而言之,我在最終的html文件中包含了2個jquery ui js。當我離開只有1版本的jQuery UI時,一切似乎都按預期工作。