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取得して要素にロードします。Firebug(またはAJAXを使用してロードされたコンテンツを表示できるブラウザーデバッガー)のようなものを使用すると、PHPスクリプトが次のように返されることがわかります。<article>wrap

<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 に答える