javascript - Angularjs中带有按钮的可扩展div

标签 javascript html css angularjs

那是我的问题:http://jsfiddle.net/2f6qscrp/311/ 简而言之:我有一个可以扩展的 div,它显示了一个新的 div。这种事件必须在所有的div中。所以,在这个 div 的每个部分我都可以打开它(就像 Accordion 一样)。问题是,如果我单击此 div 上的按钮之一(它们必须在那里),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 部分

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);
    };
});

最佳答案

您可以尝试使用 event.stopPropagation(); 方法来避免在单击按钮时打开 div。

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

关于javascript - Angularjs中带有按钮的可扩展div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44672722/

相关文章:

javascript - JQuery 点击并输入 keyup,不同的类

html5 音频无法在 chrome 中播放

javascript - 我无法重定向并转到特定部分

html - 自动从元素中删除未使用的 CSS 类

javascript - Facebook 喜欢登录表单

javascript - 如何防止 React 卸载/重新安装组件?

javascript - 在保持链接的同时折叠时将加号更改为减号

javascript - 将 base64 存储在本地存储中

html - 建议需要修复 flex/bootstrap prob

html - 具有三个文本字段的主要电话号码