我在对话框中发生了一个奇怪的错误,我正在加载对话框,但每当我给它分配一个按钮时,虽然它会显示按钮,但它不会显示按钮的名称。这是我成功启动对话框的代码......
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>
span类是应包含文本的区域,但正如您所看到的,它不是。有什么想法吗?
答案 0 :(得分:4)
这给了我很多启发,但它并不适合我,我做了以下修改。我认为这样做效果更好。
$('div.ui-dialog-buttonset button.ui-button span.ui-button-text').each(function() {
$(this).html($(this).parent().attr('text'));
});
答案 1 :(得分:4)
这适用于jQuery UI v1.8.22 CDN(已测试):
$('div.ui-dialog button.ui-button').each(function() {
$(this).children('.ui-button-text').html($(this).attr('text'));
});
答案 2 :(得分: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>
答案 3 :(得分: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 :(得分:0)
我有类似的问题。最后通过将当前使用的1.3版本的jQuery升级到当前版本(1.7.1)来解决它。我刚刚注意到我使用的jQuery UI版本不是最新的(1.8.11 vs 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以来,我认为它们不会改变这种小版本更改之间的兼容性。)答案 5 :(得分: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) {
答案 6 :(得分:0)
我遇到了同样的问题,但之所以没有文字,是因为我有依赖性问题。简而言之,我在最终的html文件中包含了2个jquery ui js。当我只留下一个版本的jquery ui时,一切似乎都按预期工作。