我想使用jquery从两个php页面加载数据。我把下面的代码放在一起,但只有一个不同时工作。有什么想法吗?
$(document).ready(function() {
loadData();
});
var loadData = function() {
$.ajax({
type: "GET",
url: "second.php",
dataType: "html",
success: function(response){
$(".hm_m_un").html(response);
setTimeout(loadData, 1000);
}
});
};
$(document).ready(function() {
loadData();
});
var loadData = function() {
$.ajax({
type: "GET",
url: "test.php",
dataType: "html",
success: function(response){
$(".rx").html(response);
setTimeout(loadData, 1000);
}
});
};
答案 0 :(得分:4)
您使用第二个变量覆盖了第一个loadData
变量。给它一个不同的名字,你会没事的。
作为一个注释,你不需要两次调用$(document).ready(),你可以在技术上调用一次。我会写这样的东西:
function descriptiveFunctionName() {
$.ajax({
type: "GET",
url: "second.php",
dataType: "html",
success: function(response){
$(".hm_m_un").html(response);
setTimeout(loadData, 1000);
}
});
}
function anotherDescriptiveFunctionName() {
$.ajax({
type: "GET",
url: "test.php",
dataType: "html",
success: function(response){
$(".rx").html(response);
setTimeout(loadData, 1000);
}
});
}
$(document).ready(function() {
descriptiveFunctionName();
anotherDescriptiveFunctionName();
});
请注意,虽然这是非常懒惰的答案,但用户Machavity的代码更适合重复使用,尽管您可能只想使用发送到loadData
的回调来获得更大的灵活性。将来
答案 1 :(得分:2)
您已将它们全部命名为。尝试一些合并
$(document).ready(function() {
window.setInterval(function() { loadData('second.php', $('.hm_m_un')); }, 1000);
window.setInterval(function() { loadData('test.php', $(".rx")); }, 1000);
});
var loadData = function(page, ele) {
$.ajax({
type: "GET",
url: page,
dataType: "html",
success: function(response){
ele.html(response);
}
});
};
答案 2 :(得分:1)
非常简单....你声明了一个变量loadData
并将其分配给一个函数。
然后使用相同的变量分配给另一个函数,从而擦除第一个实例。使用不同的变量名称