2016-04-14 17 views
2

td olayı yerine tr'i nasıl alabilirim?<td> tıklandığında Tablo <tr> alın

app.controller('myController', ['$scope'], function($scope) { 
    $scope.OnRowFocused = function (event) { 
     event.target.attributes.class.nodeValue = 'active'; 
    } 
}); 

<table> 
    <tr ng-click="OnRowFocused($event)"> 
     <td> 
      Column 1 
     <td/> 
     <td> 
      Column 2 
     <td/> 
    </tr> 
</table> 

Satırdaki herhangi bir sütunu tıklattığımda, her zaman tr yerine td olayı alıyorum. Tr olayı almak istiyorum, böylece kullanıcı etkileşime girdiğinde odaklanmış satırı vurgulayabilirim. Tıklamayı alan eleman

+0

$ event.currentTarget' – uzaif

+0

event.currentTarget boş. – lim0721lim

+0

çözüm buldunuz mu? Event.currentTarget ile – uzaif

cevap

1

event.currentTarget'u, olayın gerçekleştiği yerde geçerli bir öğe verecek şekilde kullanın. Senin bu yaklaşım, gitmek için tavsiye ederim

$scope.OnRowFocused = function (event) { 
    console.log('This is the correct element',event.currentTarget); 
    console.log("class list", event.currentTarget[0].classList) 
}; 

denetleyicisinden DOM manipüle gibi görünüyor. yönergesinde bir yere gitmelidir. yerine `target` kullanıcının` arasında

Demo Plunkr

+0

ama buna css sınıfını nasıl ekleyebilirim? – lim0721lim

+0

bunu çözdü: $ (event.currentTarget) .addClass ('başarı') – lim0721lim

+0

Arama yaptığınızda jQuery..cool.do accpt cevabı kullanılmadığını düşündüm. –

0

event.target'dur.

Olay işleyicisinde this kullanmayı deneyin - this, olayın kaydedildiği öğedir.

İlgili konular