首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击显示使用角js或JS的隐藏链接

问点击显示使用角js或JS的隐藏链接
EN

Stack Overflow用户
提问于 2016-03-12 17:03:01
回答 2查看 1.1K关注 0票数 0

点击“显示所有”我想显示所有的元素,在点击链接“上半年”,我想显示"abc“"def”和"ghi“。点击第二链接“下半年”,我想显示"jkl","mno“和"pqr”。再次点击链接“显示所有",我想显示一切。"abc“、"def”、"ghi“、"jkl”、"mno“、"pqr”。

我发现了一些类似的问题,并试图加以落实。但是我不能再次显示隐藏的元素。

下面是代码示例:

当我单击“显示前半部分”时,我在JS中这样做:

代码语言:javascript
复制
document.getElementById("abc").style.display = 'visible';
document.getElementById("def").style.display = 'visible';
document.getElementById("ghi").style.display = 'visible';
document.getElementById("jkl").style.display = 'none';
document.getElementById("mno").style.display = 'none';
document.getElementById("pqr").style.display = 'none';

再次,当我单击“显示所有”时,我是这样做的:

代码语言:javascript
复制
document.getElementById("abc").style.display = 'visible';
document.getElementById("def").style.display = 'visible';
document.getElementById("ghi").style.display = 'visible';
document.getElementById("jkl").style.display = 'visible';
document.getElementById("mno").style.display = 'visible';
document.getElementById("pqr").style.display = 'visible';

但这不能再次显示隐藏元素。

如果您需要进一步的信息,请告诉我。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-12 18:51:19

尝试避免为这样的任务使用元素。您可以通过使用在作用域变量中设置的标志使用ng-show或ng-if来实现这一点。

首先在控制器中创建作用域变量。

代码语言:javascript
复制
angular.module('sample', []);
angular.module('sample').controller('sampleCtrl', ['$scope',function($scope) {
  $scope.displayAll = true;
  $scope.displayOne = true;
  $scope.displayTwo = true;

  $scope.toggleDisplayAll = function(){
       $scope.displayAll = true;
       $scope.displayOne = $scope.displayAll;
       $scope.displayTwo = $scope.displayAll;
  };
  $scope.toggleDisplayOne = function(){
     $scope.displayOne = true;
     $scope.displayTwo = false;
  };
  $scope.toggleDisplayTwo = function(){
     $scope.displayTwo = true;
     $scope.displayOne = false;
  };

}]);

现在将这些组件集成到html文件中。

代码语言:javascript
复制
    <body ng-app="sample">
     <div ng-controller="sampleCtrl">
       <button ng-click='toggleDisplayAll()'>Toggle All Display</button>
        <button ng-click='toggleDisplayOne()'>Toggle First Display</button>
        <button ng-click='toggleDisplayTwo()'>Toggle Second Display</button>
                    <nav class="navbar navbar-default">
                                <div class="navbar-header">
                                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                                        <span class="sr-only">Toggle navigation</span>
                                        <span class="icon-bar"></span>
                                        <span class="icon-bar"></span>
                                        <span class="icon-bar"></span>
                                    </button>
                                    <a class="navbar-brand" ><strong>Go quickly to: </strong></a>
                                </div>


                                        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                                    <ul id="test1" class="nav navbar-nav">
                                        <li id="all_sep_branch" class="active"><a href="#" ng-click="load_data_for_branch('all_branch')">All branches </a></li>

                                        <li ng-show='displayOne'><a href="#" ng-click="load_data_for_branch()">abc </a></li>
                                        <li ng-show='displayOne'><a href="#" ng-click="load_data_for_branch()">def </a></li>
                                        <li ng-show='displayOne'><a href="#" ng-click="load_data_for_branch()">ghi </a></li>
                                        <li ng-show='displayOne'><a href="#" ng-click="load_data_for_branch()">jkl </a></li>
                                        <li ng-show='displayOne'><a href="#" ng-click="load_data_for_branch()">mno </a></li>



                                        <li ng-show='displayTwo'><a href="#" ng-click="load_data_for_branch()">pqr </a></li>
                                        <li ng-show='displayTwo'><a href="#" ng-click="load_data_for_branch()">stu </a></li>
                                        <li ng-show='displayTwo'><a href="#" ng-click="load_data_for_branch()">vwln </a></li>
                                        <li ng-show='displayTwo'><a href="#" ng-click="load_data_for_branch()">fsdfs </a></li>
                                        <li ng-show='displayTwo'><a href="#" ng-click="load_data_for_branch()">fsddf</a></li>

                                    </ul>
                                </div>

 </div>  
  </body>

这里也是工作实例

编辑:我已经更新了柱塞和答案来解决您的css问题。

解释了CSS崩溃的原因:,这是因为您在<li>标记之间使用了<span>标记。这将破坏<ul>和<li>标记之间的父级子关系。而且,当$scope.displayOne和$scope.displayTwo只是作用域变量时,它们也被用作函数。

票数 1
EN

Stack Overflow用户

发布于 2016-03-12 17:07:15

显示属性没有值visible。您应该使用block而不是visible来显示隐藏元素,如下所示。

代码语言:javascript
复制
document.getElementById("abc").style.display = 'block';
document.getElementById("def").style.display = 'block';
document.getElementById("ghi").style.display = 'block';
document.getElementById("jkl").style.display = 'block';
document.getElementById("mno").style.display = 'block';
document.getElementById("pqr").style.display = 'block';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35960644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档