2017-09-21 9 views
0

私はdivの親にいくつかのものを制限するための指示をしましたが(私が例に書いていない制限など)、2番目の要素をクリックすると聞きたい2番目の要素でのみ、クリックするとどのように聞くことができますか?子要素のみをクリックする

注:私は、次のようにディレクティブにdivの父に

angular 
 
    .module('MyApp', []) 
 
    .directive(
 
    'clickMe', 
 
    function() { 
 
     return { 
 
     link: function(scope, element) { 
 
      element.on('click', function() { 
 
      console.log('click'); 
 
      }); 
 
     }, 
 
     }; 
 
    } 
 
);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="MyApp"> 
 
    <div click-me> 
 
    clickeame 
 
    <div id="one"> 
 
     click 2 
 
    </div> 
 
    </div> 
 
</div>

+1

にイベントリスナーを追加する別の方法だろう、私はangularjs経験がないが、ほとんどのイベントリスナーを使用すると、ターゲットを決定することができますhttps://developer.mozilla.org/en-US/docs/Web/API/Event/target。イベントターゲットのidが "one"であるかどうかを確認できます –

+1

https://codepen.io/anon/pen/eGzBQm –

+0

@YusafKhaliq角度のある他の方法はありませんか? – hubman

答えて

2

変更あなたのディレクティブを挿入する

angular 
    .module('MyApp', []) 
    .directive(
    'clickMe', 
    function() { 
     return { 
     link: function(scope, element) { 
      element.on('click', function(event) { 
      if (event.target.id == "one") { 
       console.log('click'); 
      } 
      }); 
     }, 
     }; 
    } 
); 

DEMOをしたい

angular 
 
    .module('DemoApp', []) 
 
    .directive(
 
    'clickMe', 
 
    function() { 
 
     return { 
 
     link: function(scope, element) { 
 
      element.on('click', function(event) { 
 
      if (event.target.id == "one") { 
 
       console.log('click'); 
 
      } 
 
      }); 
 
     }, 
 
     }; 
 
    } 
 
);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="DemoApp"> 
 
    <div click-me> 
 
    clickeame 
 
    <div id="one"> 
 
     click 2 
 
    </div> 
 
    </div> 
 
</div>

+0

角度のある他の方法はありませんか? – hubman

+0

どういう意味ですか?これはangularjsだけです – Sajeetharan

+0

これは素晴らしい、素晴らしいです! – hubman

2

これは一人っ子 https://codepen.io/anon/pen/eGzBQm

angular 
    .module('MyApp', []) 
    .directive(
    'clickMe', 
    function() { 
     return { 
     link: function(scope, element) { 
      element.find("div").on('click', function(event) { 
       console.log('click'); 

      }); 
     }, 
     }; 
    } 
); 
関連する問題