2016-05-17 1 views
0

jsfiddleクリックイベントで属性が見つからない

私は動的にjavascriptを設定したテーブルを持っています。サービス列の下には、画面下部にチャットボックスを表示するためのリンク(鉛筆アイコン)があります。人が誰とチャットしているかを識別するためのタブがあります。

問題:チャットリンクをクリックすると、表示されるタブのタイトルが人数ではなく「未定義」になります。

は、私はこのような者番号を取得しています:

$("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'が 'undefined'と表示されます。どうにかして、var link = $(e.target).parent()。closest( 'a');私は属性を取得するためのリンクを持っていないので、失敗します。 – user3389171

答えて

0

ソリューション:<a>リンクの削除既存のパディングによって

編集CSSファイル、および追加:

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

使用アイコンの隣にある別の<div class='status'>の新しいルール。これによりアイコンの周りのデッドスペースがなくなり、クリックすると「無題」タブが表示されます。

関連する問題