javascript - 单击一下即可切换两个不同的 div

标签 javascript angularjs

我正在尝试从两个不同的 ng-click 事件切换文本。问题是,只有 text1 或 text2 应该同时显示。这是我当前的代码:

HTML:

<html lang="de" ng-app="ngToggle">
   <div ng-controller="BlubCtrl">
     <img ng-click="blob=!blob">
     <img ng-click="blub=!blub">

     <div ng-hide="blob">text1</div>
     <div ng-hide="blub">text2</div>
   </div>
<html>

JS:

angular.module('ngToggle', [])
    .controller('BlubCtrl',['$scope', function($scope){
        $scope.blub = true;
        $scope.blob = true;
}]);

最佳答案

假设您希望该选项不显示或最多显示一个 div,那么您只需在作用域上的函数中处理该逻辑即可。可能如下所示。

$scope.toggleBlub = function() {
    $scope.blub = !$scope.blub
    $scope.blob = true;
}
$scope.toggleBlob = function() {
    $scope.blob = !$scope.blob
    $scope.blub = true;
}

您会将点击次数更新为以下内容。

<img ng-click="toggleBlob()">
<img ng-click="toggleBlub()">

angular.module('ngToggle', [])
  .controller('BlubCtrl', ['$scope',
    function($scope) {
      $scope.blub = true;
      $scope.blob = true;

      $scope.toggleBlub = function() {
        $scope.blub = !$scope.blub
        $scope.blob = true;
      }
      $scope.toggleBlob = function() {
        $scope.blob = !$scope.blob
        $scope.blub = true;
      }
    }
  ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="ngToggle" ng-controller="BlubCtrl">
  <button ng-click="toggleBlob()">Blob</button>
  <button ng-click="toggleBlub()">Blub</button>

  <div ng-hide="blob">text1</div>
  <div ng-hide="blub">text2</div>
</div>

关于javascript - 单击一下即可切换两个不同的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31075387/

相关文章:

html - 带有 angularjs 的网格/平铺 View

javascript - iframe位置加载观察

javascript - 如何改善 eslint-plugin-Angular watch 错误?

javascript - 如何监听 Javascript 中的键盘类型文本?

c# - Angular $http 错误响应 statusText 始终未定义

c# - 在 AngularJS/WebApi 应用程序中使用 Windows 身份验证的 CORS 问题 - 仅适用于 IE

javascript - 禁用当前页面的 JavaScript

javascript - 重定向到包含 POST 数据和自定义 header 的页面

javascript - 链接 angularjs 休息端点访问

javascript:如何在游戏中交换玩家回合?