Jquery проблема .click .each - PullRequest
       1

Jquery проблема .click .each

3 голосов
/ 12 сентября 2011

Привет, можете ли вы помочь мне с этим кодом на основе 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>

Я не уверен, в чем проблема, но когда я нажимаю первую из этих кнопок, она работает, но для второй она не работает(будет много тегов A с одинаковым идентификатором, поэтому код должен работать с каждым из них. Возможно, это неправильный синтаксис в .each .click или где-то еще. Можете ли вы помочь мне с этим?

Ответы [ 3 ]

5 голосов
/ 12 сентября 2011

Это вызовет проблемы, если вы назначите один и тот же идентификатор нескольким элементам, идентификаторы должны быть уникальными в документе.Вместо этого вы можете использовать классы -

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

, и ваш jQuery изменится на -

$(".chatIM").each(function ...
2 голосов
/ 12 сентября 2011

Поле id должно быть уникальным для всего документа.Попробуйте добавить атрибут класса следующим образом:

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

И измените код jQuery на этот:

$(".chatIM").each(function(){ 
2 голосов
/ 12 сентября 2011

Вы не должны иметь более одного элемента на странице с одинаковым идентификатором. Измените идентификатор на класс:

<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>
...