2017-06-21 34 views
0

這就是我的問題:http://jsfiddle.net/2f6qscrp/311/ 不久:我有一個div可以擴展,它顯示一個新的div。這種事件必須全部分開。所以,在這個div的每一部分我都可以打開它(就像手風琴一樣)。問題是,如果我點擊這個div上的按鈕之一(他們必須在那裏)div打開。如果可能,我會避免這件事。可能嗎?Angularjs中的按鈕可擴展div

<div ng-app='home'> 
    <!-- App goes here --> 
    <md-content md-scroll-y flex layout="column" class="_md ng-scope layout-column flex" layout-padding ng-controller="MainCtrl as mainCtrl"> 
     <div layout="column" md-scroll-y> 
      <div layout="row" ng-click="showDetailsFunction();" class="div-outline-none div-cursor-pointer"> 
      <h3 flex class="div-card-panel-title"> 
       Blablablabla 
      </h3> 
      <span flex></span> 
      <ul flex class="div-doc-act div-flex"> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn1');"> 
        btn1 
       </md-button> 
       </li> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn2');"> 
        btn2 
       </md-button> 
       </li> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn3');"> 
        btn3 
       </md-button> 
       </li> 
      </ul> 
      </div> 
      <div data-ng-if="showDetails" class="animate-if"> 
       <div> 
       wevniwernviurevnier 
       </div> 
      </div> 
     </div> 
    </md-content> 
</div> 

角部位

angular.module('home', ['ngAria', 'ngAnimate', 'ngMaterial']); 

angular.module('home').config(function ($mdThemingProvider) { 
    $mdThemingProvider.theme('default') 
     .primaryPalette('pink') 
     .accentPalette('grey'); 
}); 

angular.module('home').controller('MainCtrl', function ($scope, $window) { 
     $scope.showDetails = false; 
    $scope.showDetailsFunction = function() { 
     $scope.showDetails = !$scope.showDetails; 
    }; 
    $scope.greeting = 'Hello, World!'; 
    $scope.doGreeting = function(greeting) { 
     $window.alert($scope.greeting + " " + greeting); 
    }; 
}); 

回答

0

你可以嘗試使用event.stopPropagation();方法,以避免對按鈕點擊DIV開幕。

$scope.(your div name) = function($event) { 
    $event.stopPropagation(); 
    // Some code to find and display the next image 
} 
+0

如果我使用event.stopPropagation();當我點擊按鈕時,我無法使用按鈕中的功能 –

+0

@ End.Game哦,是的!你仍然可以。看看這個小提琴http://jsfiddle.net/ahzhhuLw/。 – 31piy

+0

我不確定。在我真正的代碼中,當我點擊其中一個按鈕時,會啓動一個http調用,如果我放入代碼,它不會觸發該調用。此外,該調用打開一個模式,並與event.stopPropagation();模態不出現 –