jQuery' on'在“加载”之后事件无法正常工作事件

时间:2014-03-27 03:21:12

标签: javascript php jquery html ajax

我有一个页面有类似的事件正在进行但是在它加载新内容的过程中,当新内容加载时,许多jQuery不起作用。

它基本上是一个“游戏”,你可以回答一堆问题(通过AJAX处理),当第一个“级别”的所有内容都被回答时,它会带你进入下一个级别。一旦所有问题都得到解答,我'清空()'主要内容div,然后使用它:

$('#content').load('next_page.php', function(){
$.getScript("js/new_functions.js",function(){           
        $('form.sample_form').on('submit', function(e){                                 
            e.preventDefault();
            alert('test');
        });
    });
});

它加载信息并对数据库执行一些PHP调用以填充表单中的内容。然后我希望在加载后在表单上有一个提交功能。我最初在'new_functions.js'页面中有'submit'功能,但它没有那样工作。我假设这是因为new_functions.js文件中有一个AJAX函数,并且它以异步方式运行,因此在应用form.sample_form提交函数之前不会设置表单(即使它仅在new_functions之后应用)。 js文件已加载)。如果我在AJAX函数中运行提交函数,则存在各种问题,因此无效。

所以我的问题是,只有在加载新页面,加载新函数文件并运行所有AJAX之后,我才能将提交函数应用于表单。

1 个答案:

答案 0 :(得分:1)

对我有用的是在$(文件).ready

中设置以下所有内容
$(document).on('submit','form.firstForm', function(event){
    event.preventDefault();

    handleData();
});

 $(document).on('submit','form.secondForm', function(event){
       event.preventDefault();
       handleData();
});

此外,如果您在每个表单中都有重复使用的输入插件,请将它们包装起来,以便在每次ajax操作后初始化它们

$(document).ajaxComplete(function(event, xhr, settings) {
        $("#inputdate").pickadate();  

        $("#inputtime").pickatime();
});
相关问题