2011-05-17 10 views
3

私はjQueryのコードの非常にシンプルなjQueryのビットに問題のビットを持っている - 私はでそれをトラブルシューティングしてきた:グーグルを使用して文書 JQueryが実行されていませんが、ロード中ですか?

  • の最後にjQueryのコードを移動

    1. jQueryと地元が$(ドキュメント).readyを使用して
    2. を開催しホステッド - とPHPは、HTMLドキュメントに挿入すると、コードを生成取り出して、コードを挿入するPHP
    3. せずにそれを試みることによって、それを簡素化
    4. なし火かき棒 - ノート:これは、実際にここでjQueryのコードだ完全

    に動作します:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    <script language="text/javascript"> 
    $(document).ready(function(){ 
        $('.del').click(function() { 
         alert(this.id); 
        }); 
    }); 
    </script> 
    

    ここではPHPのコードは次のとおりです。

    この種のHTMLを生成
    while($row = mysql_fetch_array($reports)){ 
         echo '<tr><th>'.$row['title'].'</th>'; 
         echo '<td><a href="modify.php?site='.$row['id'].'">Modify</a></td>'; 
         echo '<td> <img class="del" id="'.$row['id'].'" src="../right_place.jpg" width="75" height="75"></td>'; 
         echo '<td><a href="../report.php?site='.$row['id'].'"><img src="../'.$row['thumb'].'" width="75" height="75"></a></td></tr>'; 
        } 
    

      <tr> 
           <th>Site 2</th> 
           <td><a href="modify.php?site=2">Modify</a></td> 
           <td><img class="del" id="2" src="../right_place.jpg" width="75" height="75"></td> 
           <td><a href="../report.php?site=2"><img src="../placeholder.jpg" width="75" height="75"></a></td> 
          </tr> 
    
          <tr> 
           <th>Site 1</th> 
           <td><a href="modify.php?site=1">Modify</a></td> 
           <td><img class="del" id="1" src="../right_place.jpg" width="75" height="75"></td> 
           <td><a href="../report.php?site=1"><img src="../placeholder.jpg" width="75" height="75"></a></td> 
          </tr> 
    

    私は現在Google Chromeで試してみました インターネットエクスプローラ。これの最も興味深い面は、JQueryコードをコピーしてFirebugに貼り付けると、完全に実行され、エラーはないということです。しかし、ページ内にあるときは実行されません。 (したがって、ページの一番下にコードを挿入しようとした1つの理由!)

    注:JQueryコードは、デバッグ/テスト目的でも簡略化されています。実際には、AJAX呼び出しを行う前に確認を求めるメッセージが表示されますMySQLのクエリを実行するPHPスクリプトに変換します。

  • +0

    に動作しますPHPコード。 Noreあなたの画像にalt属性を追加して、何かをクリックするようにしました。 – Chad

    +0

    私はちょうどこれを試して、それは動作します(http://jsfiddle.net/9YdTv/ - 画像をスパンに変えましたが、何かをクリックしていました)。 PHPコードがAJAX経由で読み込まれていますか?もしそうなら、 'live()'または 'delegate()'のどちらかのメソッドを使ってイベントをフックアップする必要があります。 –

    +0

    私は前にjsFiddleを見たことがありません - 素敵なサイト、みんなを指差してくれてうれしい!それは最後にスクリプトタグでしたが、私はそれを見落とした唯一の人ではないことを嬉しく思っています!お元気です! – Moddy

    答えて

    4

    カップル間違ってここに。

    1)。数値IDは使用しないでください。 IDは文字で始まる必要があります。

    2)。あなたのスクリプトタグは、タイプ指定子の代わりに言語指定子を使用して間違っています。それは読む必要があります:

    <script type="text/javascript"> 
    

    それを修正する必要があります。

    +0

    Btw、私は実際にあなたのために私のソリューションをテストしました:)、はい...私の作品。 javascriptは古いスクリプトタグでは全く実行されていませんでした。 –

    +0

    なぜ数値IDを使用しないのですか?私はプロジェクトで数値IDを使用しています - 全く問題ありません。 –

    +0

    @ evgeniy.labusnkiy彼らは仕様を破ります。ブラウザー間で作業することはできません。 –

    0

    はにあなたのドキュメントレディ機能を変更してみてください:

    $(document).ready(function(){ 
        $('.del').live('click', function() { 
         alert(this.id); 
        }); 
    }); 
    
    0

    私はdelegate()メソッドを使用します:物事の

    $(function() { 
    
        $("img").delegate(".del", "click", function() { 
         alert(this.id); 
        }); 
    
    }); 
    
    1

    ちょうどあなたとは何かを持っている必要があり、それは、[このjsFiddle](http://jsfiddle.net/RaaKG/1/)で完璧に動作し、言語=「テキスト/ JavaScriptを」削除し、それが

    +0

    問題はtype = "text/javascript"がコードにないことです。 Opには 'language = "text/javascript"'があります。 –

    +0

    を修正しました。簡単な間違い;) –

    +0

    私はジョンの答えを受け入れました。数字のIDについても正しいですが、私もあなたに投票しました!乾杯! – Moddy

    関連する問題