2016-05-17 50 views
0

jsfiddle在点击事件未找到属性

我有一个表动态地用javascript填充的表。在服务栏下,有一个链接(铅笔图标)用于在屏幕底部显示聊天框。有些标签用于标识人与谁聊天。

问题:有一段时间,当我点击聊天链接时,显示标签的标题是'undefined'而不是人员编号。

我检索人员数是这样的:

$("tbody").on("click", "a.chat-link",function (e){ 
     e.preventDefault(); 
     // Get the link 
     var link = $(e.target).parent().closest('a'); 
     var personCode = link.attr('person-code'); 

     $(".chat-wrapper").removeClass("closed"); 
     // hide other tabs 
     $("#chat .tabs .list-wrapper .list .scroll-container div").removeClass("current"); 
     $("#content div.messages-container div.messages").hide(); 
     $("#content div.messages-container .messages div.message").hide(); 
     // add new tab and related content 
     if ($(".scroll-container div[data-id="+personCode+"]").length === 0) { 
     //console.log('new tab'); 
     $("#chat .tabs .list-wrapper .list .scroll-container").append("<div class='current tab' data-id ='" + personCode + "'><a class='button' title='" + personCode + "' href='#'>" + 
       " <span class='name'>" + personCode + "</span><span class='remove'>x</span></a></div>"); 
     $("#content div.messages-container").append("<div data-id='" + personCode + "_content' class='messages active'></div>"); 
     } 
     // set the newly added tab as current 
     $("div[data-id="+personCode+"]").addClass(personCode === 'Admin' ? "current admin" : "current"); 

     $("div[data-id="+personCode+"_content]").show(); 
     $("div[data-id="+personCode+"_content]" + " div.message").show(); 
     $("#content").removeClass("collapse").removeAttr("aria-expanded style"); 
     //toggle collapse icon 
     $('#content-toggle').find('span').removeClass("glyphicon glyphicon-chevron-up").addClass("glyphicon glyphicon-chevron-down"); 
    }); 
+0

你的意思是说你没有得到:var personCode = link.attr('person-code'); ?? –

+0

无法在该小提琴上重现该问题。 –

+0

@DharaParmar是的,会发生什么是'007'显示为'未定义'。不知何故,var link = $(e.target).parent()。closest('a');失败,所以我没有链接来获取属性。 – user3389171

回答

0

解决方案:通过消除现有的填充

编辑CSS文件<a>链接,并补充说:

.status{padding-left: 8px; display: inline-block;} 

使用新图标旁边的单独<div class='status'>。这消除了图标周围的死角,导致点击时出现“无标题”标签。