所以我有一个 Url.ActionLink
,当单击它时,我想将部分 View 加载到模式中。这第一次有效,但第二次它将浏览器重定向到分部 View 而不是将其加载到模态中,并且 modal()
调用出现错误,指出它是 未定义
。
div 的 html 是:
<div class="modal fade" id="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body" id="modalBody"></div>
</div>
</div>
</div>
到目前为止,绑定(bind)/加载的代码是:
$(".actionLink").on("click", function (e) {
e.preventDefault();
$("#modalBody").load(e.target.href);
$("#modal").modal('show');
return false;
});
我在重定向之前遇到的错误是在 $("#modalBody").load(e.target.href);
上,错误是 "Uncaught TypeError :未定义不是一个函数。”
第一次点击链接时它会起作用,所以我不知道为什么第二次它会是未定义的。
最佳答案
.on() 类型的绑定(bind)仅适用于在脚本初始化之前创建的元素。
因此,如果您在单击函数中动态加载某些内容,则 on() 绑定(bind)将不适用于该内容。
一种解决方案可能是将单击事件绑定(bind)到容器元素,在其中加载新内容,如下所示:
$("#container").on("click", ".actionLink", function(e) { ... });
“事件处理程序仅绑定(bind)到当前选定的元素;当您的代码调用 .on() 时,它们必须存在于页面上”
jQuery .on() doc
关于c# - onClick 绑定(bind)到 Url.ActionLink 仅在第一次有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660828/