2017-10-10 4 views
1

ボタン/入力/などがたくさんあるアプリがあります。異なるイベントで私は、いくつかのイベントが誘発するそれらのそれぞれを明確に識別したい。例えばイベントトリガー時にHTML要素を特定します

、私は私のアプリの一部がある場合:私は何とか識別したい

<div class="someClass"> 
    <div> 
    <someOtherElement> 
     <div></div> 
     <div><button ng-click="someClickEvent($event)"></button></div> 
    </someOtherElement> 
    </div> 
</div> 

、私はクリックしたボタン:

function someClickEvent(e) { 
    // some identification code here 
} 

[編集]

たぶん私はこれを間違って書いたでしょう...私はXPathのような身分証明書が必要です。ローリング目的)。

私がbuttonをクリックして何らかのエラーが発生した場合、ボタンを特定してその情報をログに記録したいとします(例:div[0].someClass>div[0]>someOtherElement[0]>div[1]>button[0])。

+0

あなたはid属性でボタンを識別しますか? –

答えて

1

あなたがボタンを識別し得ると、このことによってそれをログに記録することができます

$scope.clickFunc = function(event){ 
    $scope.clickedElement = event.target.outerHTML; 
}; 

DEMO:http://jsfiddle.net/rjdzuxaL/1/

0

使用ng-click代わりonclick

<button ng-click="myFunction($event)">test</button> 

Working demo

0

変更HTMLの上:

<button ng-click="myFunction($event)">test</button> //onclick works on javascript. For Angularjs, use ng-click. 

JS:

$scope.someClickEvent = function(e) { 
    // some identification code here 
    var element = e.target; // this will give you the reference to the element. 
} 

コントローラでDOMを処理しないでください。それらのディレクティブを使用します。

+0

注: 'e.target'は* clicked *ノードへの参照になります。 'e.currentTarget'はイベントハンドラをアタッチしたノードへの参照になります。時には 'e.target!== e.currentTarget'、例えば' e.currentTarget'の子ノードをクリックする時です。 [ソース](https://developer.mozilla.org/en-US/docs/Web/Events/click) – alecdwm

関連する問題