“click”事件处理程序未触发

时间:2011-05-24 14:09:59

标签: javascript jquery

我有一个php页面打印出一个div,它有多个不同ID的锚标签。以下是示例代码:

echo "<div id=\"pageLinks\">";
echo " <a href=\"javascript:;\" id=\"1\"><<</a> ";
echo "another link...."
echo "</div">;

应该监听click事件的javascript代码如下:

$(document).ready(function(){
    $("div#pageLinks a").click(function(){
       alert("clicked");
    });
});

但它显然不起作用(我看不到“点击”警报)。 有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

您的HTML源代码完全被破坏了。您应该使用&lt;代替<并正确关闭最后一个div。

您的javascript代码顺便说一下,请在此处查看:http://jsfiddle.net/raszi/H9dnE/3/

更新

可能更好的代码:

PHP:

echo '<div id="pageLinks">';
echo '<a href="#" id="1">&lt;&lt;</a>'
echo 'another link...';
echo '</div>';

使用Javascript:

$(function() {
  $("div#pageLinks a").click(function( event ) {
    event.stopPropagation();

    alert("Clicked!");
  });
});

可在此处查看:http://jsfiddle.net/raszi/p3Ug2/

答案 1 :(得分:1)

以这种方式重写代码:

echo "<div id=\"pageLinks\">";
echo " <a id=\"1\">&lt;&lt;</a> ";
echo "another link...."
echo "</div>";

然后

$(document).ready(function(){
    $("div#pageLinks a").click(function(){
        alert("clicked");
    });
});

应该有效。不要在页面中放入错误的HTML代码!并使用HTML实体(&lt;&gt;)代替<>

答案 2 :(得分:0)

查看html源代码。也许你可以看到它以某种方式搞砸了。也许它也有助于我使用带有单引号的echo ...在任何情况下你都不必再逃避双引号,你的代码会更具可读性。