jquery页面javascript没有在ajax div上加载

时间:2013-12-23 13:48:26

标签: javascript jquery html ajax

[修订]

嗨,谢谢你的反馈。我按问题btw修改了。 为了使事情更清楚,这是我的html页面(仅样本)

<html>
<head>
<body>
     <form>
     <div class="loadAjax"></div>
     <div class="toggle">[form inputs here]</toggle>
     <a href="#" class="btn">Submit</a>
     </form>
     <script>[several js scripts here]</script>
</body>
</html>

这是我的主要js文件:

$(function() {
     [some lines here]
     $('.toggle').toggle();
     $('.btn').on('click', function(e) {
          e.preventDefault();
          $.ajax({
               url: 'http://example.com/ajaxpage',
               type: 'POST',
               data: $('form').serialize(),
               beforeSend: function() {
                     ...
               },
               success: function(data) {
                     $.getScript('js/main.js');
                     $('.content').html(data);
               }
          });
     });
});

将在div.loadAjax中加载的页面。

<div class="toggle">ajax page load</div>

以此为例,主页面上的切换似乎有效。但是div.loadAjax上的div.toggle却没有。我需要设置$ .getScipt()才能重新加载main.js文件。 div.loadAjax不应该继承main.js,因为它已经在第一个位置加载了吗?为什么我仍然需要使用$ .getScript()?

重新加载它

注意:我使用ajax在PHP页面上做表格发布。

再次感谢!

2 个答案:

答案 0 :(得分:1)

切换的代码已在您的首页加载时执行。如果没有页面重新加载,这将不会自动再次执行,否则您必须再次触发它或者应该像现在一样再次加载脚本。

尝试将其附加到点击事件并使用.trigger

动态触发它
$(function() {
     [some lines here]

     $(".toggle").on("click", function(){
                           $('.toggle').toggle();
                             });

    $('.toggle').trigger("click");

     $('.btn').on('click', function(e) {
          e.preventDefault();
          $.ajax({
               url: 'http://example.com/ajaxpage',
               type: 'POST',
               data: $('form').serialize(),
               beforeSend: function() {
                     ...
               },
               success: function(data) {

                     $('.content').html(data);
                     $('.toggle').trigger("click");
               }
          });
     });
});

答案 1 :(得分:0)

为什么不使用$.load()方法:http://api.jquery.com/load/

这将允许您执行Ajax调用,将结果注入页面的DOM,并支持执行通过请求加载的脚本。