将类应用于jquery ui对话框
Applying class to jquery ui dialog
我有一个jquery ui对话框,它的初始化方式如下
jQuery("#dialog-message").dialog({
autoOpen: false,
modal: true,
width:500,
buttons: { Ok: function () {jQuery(this).dialog("close"); }}
});
当点击下面给出的指定跨度id时,会打开此窗口
jQuery(document).delegate("#samno","click",function () {
var usin=jQuery(this).text();
jQuery.post("scripts/sample_counts.php",{"usin":usin}, function(data) {
jQuery('#dialog-message').html(data);
jQuery('#dialog-message').dialog('open');
return false;
});
});
此消息的实际div为:
<div id="dialog-message" class="dialog" title="Counting Data"></div>
以下css也在页面中:
.no-close .ui-dialog-titlebar-close { display: none;}
div.ui-dialog {
font-size:12px;
color:#333333;
}
.ui-dialog.table {
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
从post请求中收到的数据包含一个表。我定义了一个名为msg_table的类,并尝试在表上应用它。但它不起作用。
知道如何将css用于对话框中的表吗?
根据Arun p Johny的建议,我正在共享表格标记
echo "<table><tr><th>Counting Date</th><th>System ID</th><th>Counting Time(Sec)</th><th>CPM</th></tr>";
while($data2=mysql_fetch_array($result3)){
echo "<tr>";
echo "<td>".$data2['count_date']."</ts>";
echo "<td>".$data2['counter_id']."</td>";
echo "<td>".$data2['count_time']."</td>";
echo "<td>".$data2['cpm']."</td>";
echo "</tr>";
}
echo "</table>";
而不是
.ui-dialog.table {
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
尝试:
#dialog-message table {
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
使用jQueryUI对话框,对话框内容的行为就像它们是"对话框"DIV的一部分
也就是说,用于对话框的任何div——您对该div或该div的内容所做的任何样式都将反映在对话框中。只需将内容设置为#dialog-message
div的一部分,忘记它们在对话框中的事实,,真正的幸福将属于您
jsFiddle演示
编辑:
我刚刚阅读了你的问题下面的评论,我发现Austin Mullins有一个应该有效的解决方案,它回答了你关于在对话框中向表中添加类的问题。我希望他能把它作为一个答案,这样它就可以被投票支持。
但是的,事情真的很简单John R
这种方法的有效性取决于"sample_counts.php"到底返回了什么。在我对JSFiddle的测试中,我发现了两种不同的方法,它们适用于不同的情况。
如果<table>
元素是文档的根,则以下操作有效:
function(data) {
$dialog = jQuery('#dialog-message');
$data = $(data);
$data.addClass("msg-table");
$dialog.html($data).dialog('open');
return false;
}
在这个测试中,我让echo端点返回以下HTML:
<table>
<tr><th>Usin</th></tr>
<tr><td>Samno</td></tr>
</table>
请注意,在这种情况下,我们期望表本身没有周围的容器。另一方面,如果该表是较大文档的一部分,则以下操作有效:
function(data) {
$dialog = jQuery('#dialog-message');
$data = $(data).find("table");
$data.addClass("msg-table");
$dialog.html($data).dialog('open');
return false;
}
注意使用find()
函数来获取第一个<table>
元素。以下是用于测试它的示例HTML:
<div>
<table>
<tr><th>Usin</th></tr>
<tr><td>Samno</td></tr>
</table>
</div>
// Use 'dialogClass' property.
$( ".selector" ).dialog({
dialogClass: "alert"
});
我只是在主页中添加了以下css
div#dialog-message table {
margin: 1em 0;
border-collapse: collapse;
}
div#dialog-message table td, div#dialog-message table th {
border: 1px solid #eee;
border-color:#CC0033;
padding: .6em 10px;
text-align: left;
}
这就解决了问题。没有进行其他更改。感谢每一位提出建议/回答
- 如何在页面重新加载时显示jquery ui对话框
- Jquery UI对话框不会消失
- jQuery UI对话框错误,按钮导致HierarchyRequestError
- 获取活动的jQuery UI对话框
- 单击按钮创建多实例jQuery UI对话框
- JQuery UI对话框在重新打开时未正确调整大小
- MVC3 Ajax链接确认对话框使用jquery ui对话框
- jQuery UI对话框窗体-缺少变量值
- 动态创建的 jQuery UI 对话框错误后 jQuery 2.2.0 升级
- JQuery UI 对话框在第二次单击时不会更新
- jQuery UI 对话框 - X 秒后关闭
- 关闭动态创建的 jQuery-ui 对话框
- jQuery UI 对话框和滚动块竞争鼠标
- 为什么我的jQuery UI对话框不起作用
- 如何使用同一个 jQuery UI 对话框
- 我的jQuery UI对话框没有'如果前面没有警告,则不会打开
- 将类应用于jquery ui对话框
- 在jQuery UI对话框中单击triggerd多次
- 刷新jquery中弹出的ui对话框
- Redactor.js jQuery UI对话框焦点问题