2

由于某种原因,当文件具有 php 扩展名时,以下代码不起作用:

<ul class="issues">
<li><a href="jobs.php">Jobs</a></li>
<li><a href="town-centres.php">Town Centre</a></li>
</ul>
<div id="input"></div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
(function(){
var wrap = $('#input');
$('ul.issues a').on('click', function(e){
    var href = $(this).attr('href');
    wrap.load(href + ' article');   
    e.preventDefault();
});
})();
 </script>

在本地工作正常,但远程服务器上没有任何显示,除非我将文件扩展名更改为 htm。控制台显示 XHR 已加载。查看损坏的 PHP 版本工作.htm版本

4

1 回答 1

0

问题是 PHP 脚本是什么(或在这种情况下不是)返回......

wrap.load(href + ' article');

这个 jQuery 加载href并只获取该<article>部分并将其加载到wrap元素中。如果您使用Firebug之类的东西(或任何可以看到使用 AJAX 加载的内容的浏览器调试器),您将看到 PHP 脚本返回以下内容:

<div id="content">
<h1>Do new supermarkets really create jobs?</h1>
etc...

版本.htm返回的位置:

<div id="content">
<article>
<h1>Do new supermarkets really create jobs?</h1>
etc ...

所以你可以看到 PHP 没有回复<content>标签 - 因此没有 HTML 被添加到wrap元素中

您有 2 个选项来解决问题..

  1. 将 jQuery 更改为wrap.load(href + ' #content');
  2. 更改 PHP 脚本以包含<article>
于 2012-11-14T14:12:09.330 回答