Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery-需要在页面上的任何锚链接上显示模式对话框_Jquery_Asp.net Mvc 3_Jquery Ui - Fatal编程技术网

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'。。。。