【发布时间】:2013-06-20 14:51:45
【问题描述】:
我有一个网页 Default.html,它通过 jquery 脚本对 PHP 脚本进行 ajax() 调用。如果 POST 数据满足某些条件,那么 PHP 会:
echo file_get_contents('Restrict/Restrict.html');
这个回显是一个受限文件的内容作为 (msg) 返回到 jquery 脚本,然后执行
document.write(msg);
这非常适合显示 Restrict.html 的 HTML 内容,但是一旦页面加载,与 Restrict.html 关联的 jquery 都不会工作。
我尝试将 Restrict.html 的 jquery 脚本放在与调用页面 Default.html 相同的文件夹中,并将其包含在带有标签的 Default html 中。我还重写了 jquery 方法以使用 live() 来确保事件绑定到动态创建的元素。似乎没有任何效果。请有人能启发我。我在 document.write 中使用了错误的技术吗?或者也许是 jquery 使用 document.ready() 的问题?很高兴提供更多代码,但这里涉及很多内容。
这是 Restrict.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html lang="en">
<head profile="http://www.w3.org/2005/10/profile">
<title>Project page</title>
<link rel="stylesheet" href="ento.css" type="text/css">
<script src="jquery.js"></script>
<script src="RestrictScripts.js"></script>
</head>
<body>
<span class="titleText">Your project page</span>
<div id="mainwrapper">
<div id="logoSquare" class="entoSquare">
<span class="titler">Logo</span>
</div>
<div id="screenshotSquare" class="entoSquare">
<span class="titler">Current screenshot</span>
</div>
</div>
<!--END MAIN-->
<!--HIDDEN POPUPS-->
</div>
<div id="largeSS" class="largeBox">
<img src="Site.png">
<img src="close.png" class="closer">
</div>
<div id="largeLogo" class="largeBox">
<img src="LogoLarge.png">
<img src="close.png" class="closer">
</div>
</body>
</html>
这是 RestrictScript.js
$('document').ready( function(){
//page help
//click small images to loads overlays
$("#screenshotSquare").live("click", function(){
console.log("Anything?");
$("#largeSS").css('visibility','visible');})
});
【问题讨论】:
-
您究竟是如何生成
msg变量的? -
请发
Restrict/Restrict.html的内容 -
另外,请显示应该在
Restrict.html上运行的jQuery代码 -
msg 被生成以返回 ajax()。它实际上只是 PHP 的回显形式,然后在 ajax 调用的 done() 部分中处理。
-
根据 jQuery 1.9,live 方法已被删除 - api.jquery.com/live 你的 jquery 版本是什么?
标签: jquery dynamic file-get-contents