【问题标题】:jQuery methods not working in PHP loaded HTML [closed]jQuery方法在PHP加载的HTML中不起作用[关闭]
【发布时间】: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


【解决方案1】:

您可以使用$('#myContainer').html(msg);

【讨论】:

  • 好主意。现在试试。
  • 是的。当然是的。不必使用 document.write。直接读入 $('html')。非常感谢皮埃尔。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
相关资源
最近更新 更多