1

要素からクリックリスナーを取得する値を取得するのに問題があります。
「tagit」をクリックしても何も起こらず、理由がわかりません!

私は私のjavascriptにこのコードを持っています:

<script type="text/javascript">
function UpdateBuddyStat()
{
    $.getJSON('/update-buddies', function(jsonData){

     var counterjson = 0;
     var LI_list_html = '';

     $.each(jsonData, function(i,value){

      var count = counterjson++;
      var username = jsonData[i].name;
      var buddy = jsonData[i].buddyid;

      var DIV_html = username+' <div class="FunctionBuddyBox"><span class="TagBuddy" id="TagsBuddy_'+buddy+'" data-tagbuddyid="'+buddy+'">tagit</span></div>';

      LI_list_html = LI_list_html+'<li>'+DIV_html+'</li>';
     });

     $("#ShowBuddyList ul li").remove();
     $("#ShowBuddyList ul").html(LI_list_html);  
    })
}
setInterval("UpdateBuddyStat()", 3000);
</script>

そして、これは私がリスナーを捕まえる方法です:

$('[id^=TagsBuddy_]').click(function(){
    var buddyid = $(this).data('tagbuddyid');
    alert(buddyid);         
});  

以下のコード(静的html)により、正常に動作します。

<?php echo $value['name'] ?> <div class="FunctionBuddyBox">
<span class="TagBuddy" id="TagsBuddy_<?php echo $value['fb_id'] ?>" data-tagbuddyid="<?php echo $value['fb_id'] ?>">tagit</span>
</div>  

理由がわからない!なにか提案を?どうもありがとう。

4

4 に答える 4

3

HTML コンテンツを動的にロードしているため.on()、イベント リスナーとして使用する必要があります。試す

$('#ShowBuddyList ul').on('click', '[id^=TagsBuddy_]', function(){
    var buddyid = $(this).data('tagbuddyid');
    alert(buddyid);         
});  
于 2013-02-18T11:41:23.140 に答える