为什么这个jquery片段不起作用?

时间:2013-12-10 13:31:36

标签: javascript jquery google-chrome firefox

我想知道为什么这个代码段适用于chrome(版本31.0.1650.57 m)而不适用于firefox(25.0)

    <span class="chat-user" id="directeur">
        <a class="user" user="directeur" room="" href="#">
            directeur
        </a>
    </span>
    <script>
    $("a[class=user]").click(function(event) {
        alert();
    }); 
    </script>

我点击“directeur”链接,在chrome上,我得到一个警告窗口,在Firefox中没有任何反应。

编辑,我发现问题究竟是什么

我在另一个函数中更改了DOM:

    window.setInterval(function() {
        $.get("url",
            function(data) {
                data.forEach(function(entry) {
                if (0 != $( ".chat-connected" ).find($("#"+entry.user)).size()) {
                    $("#"+entry.user).find("a").css("color", "red");
                    $("#"+entry.user).find("a").attr("room", entry.room);
                }
            });
        });
    }, 30000);

这个改变正在改变DOM,并且点击jquery功能不再适用于&lt; a&gt;属性。

3 个答案:

答案 0 :(得分:1)

我不知道浏览器之间的差异是什么。也许<标签上缺少</script>?无论如何,你应该真的使用

$("a.user").click(function(event) {
    alert();
}); 

答案 1 :(得分:1)

请改为尝试:

<span class="chat-user" id="directeur">
    <a class="user" user="directeur" room="" href="#">
        directeur
    </a>
</span>
<script>
$("a.user").click(function(event) {
    alert("It works !");
}); 
</script>

使用CSS选择器时更简单......

答案 2 :(得分:0)

解决方案是更改$(“a.user”)。点击(...) $(“a.user”)。on(“click”,...)