【发布时间】:2013-02-14 10:50:32
【问题描述】:
这是一个奇怪的问题,我已经搜索了答案,但找不到适合我的代码的答案。
编辑:此问题发生在繁重的 Ajax 页面上,该页面未刷新且正在重用 Modal。
请注意我的 Javascript 有点弱,所以我可能错误地处理了这个问题
两者都描述了我遇到的问题,但我只是更新了隐藏的调用视图。我没有绑定到按钮事件。
我定义了多个模态
<div id="modal_small" class="modal hide fade in">
</div>
<div id="modal_large" class="modal hide fade in">
</div>
我重复使用这些模式。因此 modal_large 会在一秒钟内显示一个创建表单,接下来会显示一个您可以从中选择的图像列表。
我使用以下脚本来渲染我的模态框,并传入要在每个实例中显示的视图
function show_modal_large(href) {
$.get(href, function (data) {
$('#modal_large').html(data);
$('#modal_large').modal('show');
});
};
我的目标是重用这些模式。我相信这就是问题所在
在要显示模态的视图的“$(document).ready”中,我调用此脚本绑定到模态的“隐藏”事件
$('#modal_large').on('hidden', function () {
// Make Ajax Call - THIS WORKS
});
因此,您可以在视图上显示一个列表,显示您选择的图像。然后您打开一个模式并选择更多图像。在隐藏时,我更新调用表单上的选定图像。
一切正常。
问题:
我第一次打开模式并关闭它时,'on hidden' 事件会被触发一次。我第二次打开和关闭模式时,“隐藏”事件是两次调用,第三次是三次调用,依此类推。 如果我将模式用于具有不同“隐藏”事件的其他内容,则隐藏事件将调用 四次 次用于新隐藏事件,四次 次用于旧的隐藏事件。不久之后,我的系统就因所有的 ajax 调用而死机。
我错过了什么吗?我应该如何构建我的代码,以免发生这种情况?
【问题讨论】: