我有一个带有load()函数的JQuery,每秒都有效。但是,当我在搜索框中输入用户输入时,它将无法正常工作。
$(document).ready(function() {
function loadData() {
$('body').load('index.php', function() {
if(window.reloadData != 0)
window.clearTimeout(window.reloadData);
window.reloadData = window.setTimeout(loadData, 1500)
}).fadeIn("slow");
}
window.reloadData = 0;
loadData();
});
<form action="search.php" method="get"><input type="text" placeholder="Search for movie"></form>
答案 0 :(得分:1)
如果您真的不想替换整个正文并保存表单状态,只需删除表单并将其放回原位:
<!--Index.php-->
<!-- Set a identifier for it -->
<form id="searchForm" <!--more attributes...--> ></form>
剧本:
///main.js
(($) => {
const loadData = () => {
//"take" the form
let $form = $('#searchForm').detach();
$('body').load('index.php', () => {
if(window.reloadData != 0)
window.clearTimeout(window.reloadData);
window.reloadData = window.setTimeout(loadData, 1500);
//replace the default form with the saved form
$('#searchForm').replaceWith($form);
}).fadeIn("slow");
}
$(document).ready(() => {
window.reloadData = 0;
loadData();
});
})(jQuery)
PS:建议更换只显示搜索结果的div,因为不希望每次都保存页面中每一件事的状态:)