2011-09-12 36 views
3

嗨,你能幫我用這個基於JQUERY的代碼嗎?jquery問題.click。每個

<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,使代碼 也許它是一個錯誤的語法在.each .click或其他地方。你能幫我一下嗎?

+1

我試圖格式化你的代碼更好一點,但我可能錯過了一些東西。你可能想要確保你所有的陳述都是正確的結構化和關閉的。 – David

回答

5

如果你將相同的id分配給多個元素,id應該是唯一的在文檔中,您可以改爲使用類別 -

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

和您的jQuery將更改爲 -

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

是的..完全忘了這個..我多麼傻:)謝謝。 – Svetoslav

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> 
+0

是的..完全忘了這個..我多麼傻:) 謝謝。 – Svetoslav

2

id字段在整個文檔中應該是唯一的。嘗試添加類屬性是這樣的:

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

而jQuery代碼改成這樣:

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

是的..完全忘了這個..我多麼傻:)謝謝。 – Svetoslav