onClick绑定到Url.ActionLink仅适用于第一次

时间:2014-05-14 17:00:48

标签: c# javascript asp.net-mvc razor

所以我有Url.ActionLink,点击后,我想将局部视图加载到模态中。这是第一次,但第二次将浏览器重定向到局部视图而不是将其加载到模态中,modal()调用有一个错误,表明它是undefined

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>

到目前为止,绑定/加载的代码是:

$(".actionLink").on("click", function (e) {
        e.preventDefault();
        $("#modalBody").load(e.target.href);
        $("#modal").modal('show');
        return false;
    });

我在重定向之前得到的错误在$("#modalBody").load(e.target.href);上,错误是"Uncaught TypeError: undefined is not a function."它在第一次点击链接时有效,所以我不知道为什么会这样第二次未定义。

1 个答案:

答案 0 :(得分:1)

.on()类型的绑定仅适用于在脚本初始化之前创建的元素 因此,如果您在点击功能中动态加载某些内容,则on()绑定不会对该内容起作用。
一种解决方案可能是将click事件绑定到容器元素,在该容器元素中加载新内容,如下所示:

     $("#container").on("click", ".actionLink", function(e) { ... });


&#34;事件处理程序仅绑定到当前选定的元素;在您的代码调用.on()&#34;时,它们必须存在于页面上 jQuery .on() doc