点击链接后,我尝试在弹出窗口(对话框)中打开一个视图,但我找不到问题:
以下是我的JS代码:
<script type="text/javascript">
$.ajaxSetup({ cache: false });
$(document).ready(function () {
$(".openDialog").on("click", "a", function (e) {
e.preventDefault();
$("<div></div>")
.addClass("dialog")
.attr("id", $(this).attr("data-dialog-id"))
.appendTo("body")
.dialog({
title: $(this).attr("data-dialog-title"),
close: function () {
$(this).remove();},
modal: true,
height: 500,
width: 700
})
.load(this.href);
});
$(".close").on("click", "a", function (e) {
e.preventDefault();
$(this).closest(".dialog").dialog("close");
});
});
</script>
这是我在同一视图中的链接:
@Html.ActionLink("Exports",
"List",
new { id = Model.Orga_Id },
new {
@class = "openDialog",
data_dialog_id="exportDialog",
data_dialog_title="Tous les exports"
})
所有代码都属于此视图,并且我想在对话框中显示的视图代码位于同一个Controller中。
当我点击链接时,我的导航只会像<a href="#"..></a>
你能看到这里有什么问题吗?您需要更多信息吗?
答案 0 :(得分:2)
我相信你的问题是你的点击处理程序。
$(".openDialog").on("click", "a", function (e) {
您的ActionLink是一个A标签。您正在使用的javascript将单击添加到锚标记,该锚标记是具有.openDialog类的对象的子标记。但是锚是具有.openDialog类的对象,例如没有子锚点来附加点击处理程序。
尝试
$(".openDialog").on("click", function (e) {
有关更详细的示例,请参阅.on()的JQuery文档,
答案 1 :(得分:0)
更改您的代码,如下所示
$(".openDialog").on("click", function (e) {
e.preventDefault();
$("<div></div>")
.addClass("dialog")
.attr("id", $(this).attr("data-dialog-id"))
.appendTo("body")
.dialog({
title: $(this).attr("data-dialog-title"),
close: function () {
$(this).remove();},
modal: true,
height: 500,
width: 700
})
.load(this.href);
});
答案 2 :(得分:0)
也许尝试.live方法而不是.on
类似
('.openDialog').live('click', function (e) {
这解决了我最近遇到的类似问题,因为我对JS / jQuery相对较新