【发布时间】:2011-08-27 13:11:30
【问题描述】:
我在一段非常简单的 JQuery 代码中遇到了一点问题 - 我一直在通过以下方式对其进行故障排除:
- 将 JQuery 代码移动到文档末尾
- 使用 google 托管的 JQuery 和本地托管
- 使用 $(document).ready - 和不使用
- 通过取出 PHP 生成的代码,将其插入 HTML 文档并尝试不使用 PHP 来简化它
- 使用 firebug 插入代码 - 注意:这实际上非常有效
这是 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 调用之前提示用户进行确认。 p>
【问题讨论】:
-
它在this jsFiddle 完美运行,一定与您的PHP 代码有关。我也为您的图片添加了 alt 属性,以便我们可以点击。
-
我刚刚测试过它并且它可以工作(jsfiddle.net/9YdTv - 虽然我将图像更改为跨度,所以我有一些东西可以点击)。您的 PHP 代码是通过 AJAX 加载的吗?如果是这样,您将需要使用
live()或delegate()方法来连接事件。 -
我以前从未见过 jsFiddle - 不错的网站,欢迎大家指出!最后是脚本标签,但我很高兴我不是唯一一个忽略它的人!欢呼伙计们的帮助!
标签: php javascript jquery html dom