我有一个页面有类似的事件正在进行但是在它加载新内容的过程中,当新内容加载时,许多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之后,我才能将提交函数应用于表单。
答案 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();
});