您可以帮我解决这个基于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或其他地方的语法错误。你可以帮帮我吗?
答案 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(){