Jquery问题.click .each

时间:2011-09-12 14:26:01

标签: jquery each

您可以帮我解决这个基于JQUERY的代码吗?

<script>
$(function() {      
    $("#chatIM").each(function() { 
        $(this).click(function() { 
            $.post("chatController.php", { action:"getChat", 
                               user:"<?php echo $loggedInUser->display_username; ?>", 
                               other: $(this).attr("title"), 
                               type: "<?php echo USERTYPE; ?>"}, 
            function(data) { 
                $("#chatUsers").empty(); 
                $(document.createElement("div")).attr({id: 'chatbox'}).html(data).prependTo("body"); 
            }); 
        });
    }); 
});
</script>

<a id="chatIM" title="gowthami">CHAT ME</a>
<a id="chatIM" title="vaisakhi">CHAT ME</a>

我不确定问题出在哪里,但是当我按下第一个按钮时它可以工作但是第二个它不起作用(会有很多具有相同ID的A标签,所以代码必须对每个一。 也许它在.each .click或其他地方的语法错误。你可以帮帮我吗?

3 个答案:

答案 0 :(得分:5)

如果为多个元素分配相同的id,则会导致问题,ID在文档中应该是唯一的。你可以改用类 -

<a class="chatIM" title="gowthami">CHAT ME</a>
<a class="chatIM" title="vaisakhi">CHAT ME</a>

并且您的jQuery将更改为 -

$(".chatIM").each(function ...

答案 1 :(得分:2)

在具有相同ID的页面上不应该有多个元素。将id更改为类:

<script>
    $(function(){       
    $(".chatIM").each(function(){ 
$(this).click(function(){ 
$.post("chatController.php", {action:"getChat", user:"<?php echo $loggedInUser->display_username; ?>", other: $(this).attr("title"), type: "<?php echo USERTYPE; ?>"}, 
function(data){ 
$("#chatUsers").empty(); 
$(document.createElement("div")).attr({id: 'chatbox'}).html(data).prependTo("body"); }); });
}); 
});
</script>    
               <a class="chatIM" title="gowthami">CHAT ME</a>
               <a class="chatIM" title="vaisakhi">CHAT ME</a>

答案 2 :(得分:2)

id字段在整个文档中应该是唯一的。尝试添加如下的类属性:

<a class="chatIM" title="gowthami">CHAT ME</a>

将jQuery代码更改为:

$(".chatIM").each(function(){