Win*_*ton 5 jquery-ui modal-dialog jquery-ui-dialog
StackOverflow上有几篇关于这个主题的帖子,但没有一个答案对我有帮助.我正在使用DataList控件,该控件由SELECT通过DataAdapter填充.建议使用一个概念,即只能打开一个对话框实例,但不能应用此方法
html的结构是:
<asp:DataList ID="DataList" runat="server">
<ItemStyle />
<ItemTemplate>
<a href="" class="link"/></a>
<div class = "dialog" id="dynamicID" style="display:none">
</ div>
</ ItemTemplate>
</ asp: DataList>
Run Code Online (Sandbox Code Playgroud)
我正在使用的jQuery代码是:
<script language="javascript" type="text/javascript">
$ (function () {
$ (". link. ") click (function () {
var id = '#' + ($ (this). siblings ('. dialog'). attr ('id'));
$ (id). dialog ({
AutoOpen: false,
closeOnEscape: true,
resizable: false,
draggable: false,
modal: true,
width: 800,
height: 600,
overlay: {backgroundColor: "# 000", opacity: 0.5},
top: 20,
show: 'fade',
hide: 'fade',
buttons: {
"Close": function () {
$ (id). dialog ('close');
}
}
});
$ (id). dialog ('open');
});
});
</ script>
Run Code Online (Sandbox Code Playgroud)
想象一下这个HTML
<asp:DataList ID="dataList" runat="server">
<ItemTemplate>
<div class="row">
<p>
Result: <strong>
<%# Container.DataItem.ToString() %></strong></p>
<a href="#" class="link" data-open="dialog_<%# Container.ItemIndex %>" />Click
To Open</a>
<div class="dialog" id="dialog_<%# Container.ItemIndex %>">
<h2>
This is the text inside the dialog #
<%# Container.ItemIndex %>.</h2>
<p>
</p>
</div>
</div>
</ItemTemplate>
</asp:DataList>
Run Code Online (Sandbox Code Playgroud)
用这个JavaScript
$(function () {
// create dialogs
$(".dialog").dialog({
autoOpen: false,
closeOnEscape: true,
buttons: {
"Close": function () {
$(id).dialog('close');
}
}
});
// hook up the click event
$(".link").bind("click", function () {
// console.log($(this).parent());
// open the dialog
var dialogId = $(this).attr("data-open");
$("#" + dialogId).dialog("open");
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
很可爱.
可以在这里找到工作示例
你的方法有什么问题?
你正在一个方法中创建对话框,这应该在里面创建$(document).ready(),每次你点击它,它会创建一个对话框,但是...它已经存在并搞砸了所有东西.
使用对话框时:
.dialog().dialog('open')该对话框可见.dialog('close')用来隐藏该对话框默认情况下,jQuery UI CSS将自动配置对话框(display:none;),因此您无需执行此类操作.
| 归档时间: |
|
| 查看次数: |
7570 次 |
| 最近记录: |