0

我使用 jQuery Ajax 来更新 div。一件事困扰着我:对于插入的 HTML 数据,似乎我必须将其关联的 javascripts 放入文件中,而不是将它们包含在<head>元素中。否则,Ajax 将无法工作。例如,我有以下 HTML 和 jQuery 代码:

base.html

...
<head>
...
<script>   <!-- Get script -->
$(document).ready(function() {
  $('.getContent').click(function() {
    var url = $(this).attr('href');
    $('#content').load(url);
      return false;
  });
});
</script>
</head>
...
<div id="content">
  ...
  <!-- Insert the 'addMember.html' into 'content' div -->
  <a class="getContent" href="/addMember">Add member</a>
  ...
</div>
...

addMember.html

...
<form class="postContent" action="/addMember" method="post">
  ...
  <input type="submit" value="Submit" />
</form>

<script>   <!-- Post script -->
$(document).ready(function() {
  $('.postContent').ajaxForm({
    success: function(returnData) {
      $('#container2').html(returnData);
    }
  });
});
</script>

如果我点击Add memberaddMember.html将被加载到contentdiv 中。然后当我点击 时Submit,帖子的结果也会更新contentdiv。一切正常。但是,我也想将“发布脚本”放在<head>元素中,以便其他页面可以共享代码。但是,如果我这样做,Ajax 将无法工作(即,发布结果不会更新contentdiv)。我该如何解决?

4

1 回答 1

0

只需将其制成一个函数并在新内容加载时调用该函数。

function postScript() {
  $('.postContent').ajaxForm({
    success: function(returnData) {
      $('#container2').html(returnData);
    }
  });
}
...
$('#content').load(url, postScript);
于 2013-03-10T06:44:13.130 回答