jQuery UI 对话框 - 无法看到 closeText

标签 jquery user-interface dialog

我正在尝试制作一个简单的对话框 - 没有标题,只有“关闭”一词和右上角的 X。然后我的文字等将位于下方。

但是我摆弄它,我无法显示 closeText 属性 - 我可以在 FireBug 中看到它,但它要么不出现,要么在 X 图形下出现几个字符。

最佳答案

实际上问题出在 jQuery UI CSS 和 jQuery Dialog 本身。

jQuery UI 对话框会对您传入的任何内容执行以下操作 closeText

  • 它创建了一个<span></span>其中包含您的 closeText
  • 设置样式 ui-iconui-icon-closethick '在上面

无论您是否传入closeText,span实际上总是被创建的或不。它用于显示x -结束图像。

现在查看我们找到的默认 jQuery UI CSS ui-icon

...
text-indent: -99999px;
width: 16px;
height: 16px;
...

因此 jQuery 设置文本,但浏览器永远不会显示它 ( text-indent: -99999px ),并且区域对于任何文本来说都太小。

所以我所做的是

//open dialog
$("#dialog").dialog({ closeText: 'Close me' });

//get the automagically created div which represents the dialog
//then get the span which has `ui-icon-closethick` class set (== contains closeText)
var closeSpan = $("div[role='dialog'] span.ui-icon-closethick");

//prepend a span with closeText to the closing-image
closeSpan.parent().before(
    '<span style="float:right;margin-right:25px">'+
    closeSpan.text()+
    '</span>'
);

检查这个http://jsbin.com/ibibe/一个工作示例

关于jQuery UI 对话框 - 无法看到 closeText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1790724/

相关文章:

javascript - 将字符串格式的 html 元素附加到元素,在元素周围添加双引号

jquery - 计算div宽度并插入透明div

.net - Visual Basic圆形进度条

c++ - 从控制台模拟按钮单击到 UI 类

Android使Dialog全屏显示状态栏

Android - 在自定义对话框中正确执行自定义 ListView

Google Chrome 中的 Jquery 动画问题

javascript - 检查哪个元素被点击

c++ - MFC 应用程序中的灯箱样式对话框

javascript - 如何将自定义 UI 元素(如复选框、组合等)添加到 CesiumJS 场景?