JQuery AJAX加载。 div不会重新加载自己或父div

时间:2011-04-26 07:40:17

标签: jquery

我这样做:

$(function () {
      $("#but").click(function () {
                $('#bigHtml').load('@Url.Action("SecondPage")');
            }); 
});

<div id="bigHtml">
    <div id="but"></div>
</div>

但它不起作用。我做违法的事吗? (@ Url.Action正常工作)

1 个答案:

答案 0 :(得分:3)

在这种情况下,请使用 .live() (强调我的):

  

为所有与当前选择器匹配的元素添加处理程序,现在和将来

$("#but").live('click', function () {
    $('#bigHtml').load('@Url.Action("SecondPage")');
}); 

在您的代码中,您将事件处理程序附加到当前页面中的一个#but实例。重新加载内容时,将删除此实例,以及事件侦听器。新内容中的#but元素是不同的实例

您没有重新绑定事件处理程序。调用JavaScript代码时,jQuery会查找元素#but并完成。注入新内容后,它不再显示该元素。 live()通过不将事件处理程序附加到元素而是附加文档根来克服此问题。