JQuery-需要在页面上的任何锚链接上显示模式对话框
在我看来,我有一张带锚的桌子。下面显示的单元格之一:JQuery-需要在页面上的任何锚链接上显示模式对话框,jquery,asp.net-mvc-3,jquery-ui,Jquery,Asp.net Mvc 3,Jquery Ui,在我看来,我有一张带锚的桌子。下面显示的单元格之一: @foreach (MillitarySlot slot in item.SundaySlots) { <a style="color:@slot.Color" title="@slot.ToolTip" href="@slot.HRef">@slot.SlotText</a><br /> } @fo
@foreach (MillitarySlot slot in item.SundaySlots)
{
<a style="color:@slot.Color" title="@slot.ToolTip" href="@slot.HRef">@slot.SlotText</a><br />
}
@foreach(物品中的军用插槽。星期日插槽)
{
}
如果用户单击任何一个锚点,那么我需要显示模态对话框。如何实现这一点?您可以给锚定一个id(用于jQuery性能)并绑定一个click事件,该事件通过Ajax获取模式对话框,然后返回false(如果用户禁用了JavaScript,则应继续,否则将出现对话框)因此,如果您这样做:
$('a').click(function(e) {
alert('anchor clicked');
});
在页面上点击的每一个锚点都会收到该警报-这不太可能是你想要的。如果为这些锚定指定了一个类,则可以执行以下操作:
$('a.myclass').click(function(e) {
alert('anchor clicked');
});
然后,你会得到警报,只为该类的锚。对于模态对话框部分,您可以在我得到警报的地方替换它,实质上是在页面上创建一个隐藏的div用作模态对话框。我做了这样的事情,看起来像:
$('a.myclass).click(function () {
// add the div or reuse it
var modaldialog = ($('#ModalDialog').length > 0)
? $('#ModalDialog')
: $('<div id="ModalDialog" style="display:hidden"></div>').appendTo('body');
load up data via ajax call
$.get('@Url.Action("MyAction", "MyController")', {},
function (responseText, textStatus, XMLHttpRequest) {
modaldialog.html(responseText);
modaldialog.dialog({
modal: true,
width: 500,
title: 'My Modal Dialog',
});
}
);
});
$('a.myclass)。单击(函数(){
//添加div或重用它
var modaldialog=($('#modaldialog')。长度>0)
?$(“#ModalDialog”)
:$('')。附于('正文');
通过ajax调用加载数据
$.get('@Url.Action(“MyAction”,“MyController”),{,
函数(responseText、textStatus、XMLHttpRequest){
html(responseText);
modaldialog.dialog({
莫代尔:是的,
宽度:500,
标题:“我的模态对话框”,
});
}
);
});
无论如何,这是一个开始。您也可以在对话框中添加按钮,让这些按钮根据您的特殊需要执行操作。谢谢您的回复。实际上,我在代码中修改了一些东西。1.不知怎的,类的东西并没有正常工作,所以我用“any a in table.tr”2附加到ready()事件。由于我有强类型视图,我在主体的末尾调用dialog()函数,因此在dialog show时,整个div都准备好渲染了。感谢您的回复,但我无法控制锚定标记的创建,因为它们是从列表中创建的。因此,我碰巧应用了$('.scheduleTable table tr a').live('click'。。。。