2011-02-06 13 views
3

私は教育目的のための小さくてシンプルなJSフレームワークを作成しようとしていますが、今は解決できない問題があります。jQuery load()は失敗しますが、JSエラーはありません

:私はここにjQueryのファイルやスタイルシートを貼り付けるが、ここではindex.htmlをとinit.jsあり、明らかではないよ

ディレクトリ構造

/ 
    /framework 
     jquery.js 
     init.js 
    /content 
     home.html 
     style.css 
    index.html 

問題

index.html

<!DOCTYPE html> 
<head> 
    <script src="framework/jquery-1.5.min.js"></script> 
    <script src="framework/init.js"></script> 
    <title>My website</title> 
</head> 
<body> 
    <div id="content"> 

    </div> 
</body> 
</html> 

init.js

$(document).ready(function(){ 
    if(!window.location.hash) { 
     $("#content").load("../content/home.html", function() { 
      alert("Load was performed."); 
     }); 
    } 
}); 

home.htmlファイルには、いくつかのサンプルテキスト、何も特別なが含まれています。 jQueryがhome.htmlの内容をコンテンツdivに読み込むことを期待していますが、ページを読み込むと何も起こりません。しかし、「ロードが実行されました」というメッセージが表示されたアラートが発生します。

この作業は私にとって非常に些細なことです。私が作った間違いは、おそらくかなりばかげているかもしれませんが、どんな助けにもなります。

ありがとうございました!

更新:

私は自分のサーバー上でこれを使用する場合には動作しますが、ローカルホストでは、それは失敗します。私は現時点でFirebugのトリックを使用することはできません。なぜなら、私はそれをローカルで使用すると何も表示しないからです。

+0

ブラウザの観点から、 '../ content/home.html'は本当にありますか? – Jeremy

+0

localhostではなくサーバーで作業しているのは、すでに述べたように、1)異なるバージョンのクエリのように聞こえます。 2)すでに述べたように、異なるディレクトリレイアウト。 3)あなたのブラウザは、クロスサイトスクリプティングとして評価されているので、localhostにajaxリクエストをロードしていません。 – Dave

答えて

6

Firebugを使用している場合は、[ネット]タブを開きます。あなたはajaxレスポンスを見ることができます。

チャンスはあなたが使用する必要があります:/content/home.html、ない../content/home.html

パスは、ページにコンテキストにある、ないJSファイルがどこにありますか。

+0

あなたは '。/ content/home.html'を意味します。 – ifaour

+8

Firebug Firebug Firebug。誰もがそれを使用した場合、StackOverflowはそれが持っているJavascriptの質問の1/10しか持たないでしょう。 +1。 – Spacedman

+0

私はOperaよりOperaを好きですが、Firefoxは本当に素晴らしいです。みんなありがとう! – Evert

2

実行スクリプトのベースの場所はindex.htmlの場所なので、home.htmlへの相対パスは"content/home.html"であり、"../content/home.html"ではありません。

7

jquery 1.5リリースでロード機能が無効になりました。バグチケットはhttp://bugs.jquery.com/ticket/8125にあります。これは、googleとmicrosoft cdnにまだリリースされていないバージョン1.5.1で修正されています。あなたはhttp://code.jquery.com/jquery-git.js

で負荷を含むすべての最新の修正()と非常に最新のjqueryのリリースを見つけることができる私がテストし、あなたのコードがちょうどでそれを試してみてください1.5.1

0

に動作することを確認し./

$(document).ready(function(){ 
    if(!window.location.hash) { 
     $("#content").load("./content/home.html", function() { 
      alert("Load was performed."); 
     }); 
    } 
}); 

少なくとも私のために働いています。

関連する問題