JQuery没有执行 - 但它正在加载?

时间:2011-05-17 20:14:06

标签: php javascript jquery html dom

我有一个非常简单的JQuery JQuery代码的问题 - 我一直在通过以下方式对其进行故障排除:

  1. 将JQuery代码移至文档末尾
  2. 使用Google托管的JQuery和本地托管的
  3. 使用$(文档).ready - 而不使用
  4. 通过取出PHP生成的代码,将其插入HTML文档并在没有PHP的情况下尝试来简化它
  5. 使用firebug插入代码 - 注意:这实际上非常有效
  6. 这是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代码:

        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>';
        }
    

    哪种生成这种HTML:

                <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和Internet Explorer中尝试过它。最有趣的方面是,如果我将JQuery代码复制并粘贴到firebug中,它会完美执行并且没有错误?!但是当它在页面中时它将不会执行。 (因此我尝试将代码放在页面底部的一个原因!)

    注意:JQuery代码也被简化用于调试/测试目的 - 实际上它会在对执行MySQL查询的PHP脚本进行AJAX调用之前提示用户进行确认。

4 个答案:

答案 0 :(得分:4)

这里有些不对劲。

1)。不要使用数字ID。 ID必须以字母开头。

2)。您的脚本标记不正确,使用语言说明符而不是类型说明符。它应该是:

<script type="text/javascript">

修复它,它应该可以工作。

答案 1 :(得分:1)

只需删除language =“text / javascript”即可使用

答案 2 :(得分:0)

尝试将您的doc ready功能更改为:

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

答案 3 :(得分:0)

我会使用 delegate() 方法:

$(function() {

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

});