这是一个普遍的问题,我有两个页面,一个主页和一个背景函数一个(file.php)
主页加载file.php传递变量:
$(document).ready(function() {
var page = $('#page').attr('value');
var user = $('#user').attr('value');
$('#DIV').load('file.php?user=' + user + '&page=' + page);
});
File.php查询数据库,将变量插入更多jquery的东西..
回声结果......
主页面上的结果是所需的结果。如果我修改了file.php中的变量(并通过浏览器加载),那么脚本是完全功能和交互式的。
我的问题如下:
主页面的file.php部分没有交互性,即当我点击它时没有任何反应,但是2工作正常,一起传递变量,但结果是静态的。
我的问题是,这是由于.load()函数吗?我应该使用$ .ajax()类型GET ......
提前致谢。
答案 0 :(得分:0)
#DIV是指:
<div id="DIV"></div>
也许你应该试试这个:
$(document).ready(function() {
var page = $('#page').attr('value');
var user = $('#user').attr('value');
// see the DIV below with the ID = "myId"
$("#myId").load("file.php?user=' + user + '&page=' + page", function(response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
$("#error").html(msg + xhr.status + " " + xhr.statusText);
}
});
});
<!-- empty containers with ID attributes -->
<div id="myId"></div>
<div id="error"></div>
如果返回的数据中有错误,这也会告诉您错误是什么。另外,你的调试器会告诉你什么?
答案 1 :(得分:0)
听起来你有一些附加到DOM的jQuery行为没有应用到新内容。这是因为在DOM准备就绪后(即,在加载事件触发后)加载新内容。
这可以通过使用.live
jQuery函数将事件附加到将应用于所有元素的选择器来解决,无论它们何时被添加。例如,而不是:
$('#button').click(function() { alert('hi'); });
使用:
$('#button').live('click', function() { alert('hi'); });