2017-03-06 57 views
0

最後TD我有Django的模板如下:禁止在點擊

<table id="members-table" class="table table-hover table-vcenter"> 
    <thead> 
     <tr> 
      <th>Fullname</th> 
      <th>Email</th> 
      <th>Status</th> 
     </tr> 
    </thead> 
    <tbody id="members_list"> 
     {% for member in members %} 
      <tr data-member-row class="members-row" data-member-id={{ member.user_id }}> 
       <td>{{ member.user__first_name }} </td> 
        <td>{{ member.user__email }}</td> 
        <td data-member-status data-member-id={{ member.user_id }}> 
         <form method="POST"> 
          <div class="checkbox" style="float: left;"> 
           <input id="member-status-{{ member.user_id }}" class="magic-checkbox" type="checkbox" {% if member.active %} checked {% endif %}> 
           <label id="status-label-{{ member.user_id }}"> {% if member.active %} Active {% else %} Inactive {% endif %}</label> 
          </div> 
         </form> 
        </td> 
       </tr> 
      {% endfor %} 
     </tbody> 
</table> 

jQuery的片段如下:

$('#members_list').on('click', '[data-member-row]', function (e) { 
    var member_id = e.currentTarget.dataset['memberId']; 
    alert(member_id) 
}) 

因此,我想從錶行的data-member-id它被點擊。有了這個代碼,我得到的是,這是好的,但問題是,我想要防止它,如果table row的最後td被點擊。

如果最後一次被點擊,我會做其他事情。因此,如果點擊最後一個td,我不需要允許這個alert(member_id)執行。

有什麼建議嗎?

+0

試試這個.. trs = document.getElementById(tableId).getElementsByTagName('tr'); tds = trs [trs.length - 1] .getElementsByTagName('td'); td = tds [tds.length - 1]; – Nevermore

+1

而不是聽一個行的點擊,聽一個單元格點擊,然後檢查它是否是最後一個之前做任何事情。 – Slime

回答

0
$('#members_list').on('click', '[data-member-row]', function (e) { 
if(!e.currentTarget.nextElementSibling){ 
    doSomethingElse(); return; 
} 
var member_id = e.currentTarget.dataset['memberId']; 
alert(member_id) 
}) 
+0

如果我點擊最後一個td,我仍然看到警報。 – Boky

+0

解釋你的答案 –

0

嘗試使用not:last selector.

$(#member_list td:not(:last-child)).click() 
+0

用這段代碼我得到'member_id = undefined' – Boky

+0

嘗試在控制檯中運行選擇器並查看你獲得了哪些元素。 $(#member_list td:not(:last-child)) –

0

試試這個..

trs = document.getElementById(tableId).getElementsByTagName('tr'); 
tds = trs[trs.length - 1].getElementsByTagName('td'); 
td = tds[tds.length - 1]; 
console.log(td.text()); 
0

而是在該行的事件偵聽器的,有它的電池...

$('#members_list').on('click', 'td', function() { 

    if ($(this).parent().find('td').last().index() === $(this).index()) { 

     // last td was clicked 

    } else { 

     var member_id = $(this).parent().attr('member-id'); 
     alert(member_id) 

    }; 

});