javascript - 使所选元素(内容框)变暗/着色并添加复选标记图标 AngularJS

标签 javascript jquery html angularjs twitter-bootstrap

我认为我的问题与 jquery、angularjs 和 bootstrap 有关。

我正在渲染来自后端的信息,并以几个框的形式呈现在前端。我试图获得一种“元素选择效果”,当有人单击一个或多个框时,整个框会变暗(或者最好是具有一定透明度的蓝色),并且上面会出现一个确定复选标记。该元素实际上是一个 Bootstrap 井,里面有一些内容。

我目前有一个 onClick 事件来为背景着色,但这还不够。与图像不同,更改背景颜色时图像可能会完全变暗,而使用井(或任何内容框)时,它只会对背景进行着色,而内容仍然可见。我还想在单击时在框中添加绿色复选标记图标,但我不知道如何在 onClick 事件后动态添加元素。

这是我的相关代码片段(简化的对象,无后端):

var app = angular.module('myApp', []);
app.controller('SelectCtrl', function($scope) {

  $scope.collections = [
    {text:'content collection1'},
    {text:'content collection2'}];
  $scope.selectBox = function(collection){

    collection.isclicked =! collection.isclicked;
    $("#well").click(function(){
      if (collection.isclicked){
        //$("div").append('<span class="glyphicon glyphicon-ok pull-right"></span>');
      }
    });
  }
});
.well:hover{
  cursor:pointer;
  cursor:hand;
  color: #555;
  text-decoration: none;
  background-color: #C0C0C0;
} 

.well {
 
	border-color:#8CC63F;
	float:left;
	margin-right: 20px;
	
}

.well-active {
 	
	background-color:#3399ff;
	
}

.well-active:hover {
 	
	background-color:#3399ff;
	
}
<div data-ng-controller="SelectCtrl">
  <div data-ng-repeat="collection in collections" data-ng-init="collection.isclicked=false">
    <div class="well" data-ng-click="selectBox(collection)" data-ng-class="{'well-active': collection.isclicked}">
      <div>{{collection.text}}</div>          								
    </div>
  </div>
</div>

正如我所提到的,它现在的工作方式是选定的孔改变其背景颜色,但仅此而已。如何使整个孔(包括内容)变暗/着色,以及如何在单击鼠标后在该背景顶部(孔内)添加图标?

最佳答案

您可以在井 div 内的元素中执行 ng-show/ng-hide:

<div data-ng-controller="SelectCtrl">
  <div data-ng-repeat="collection in collections" data-ng-init="collection.isclicked=false">
    <div class="well" data-ng-click="selectBox(collection)" data-ng-class="{'well-active': collection.isclicked}">
      <span ng-hide="collection.isClicked">{{collection.text}}</span>
      <i ng-show="collection.isClicked" class="glyphicon glyphicon-ok"></i>                                     
    </div>
  </div>
</div>

如果未选中集合,则会显示内容;如果选中集合,则会显示复选标记。

关于javascript - 使所选元素(内容框)变暗/着色并添加复选标记图标 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35780324/

相关文章:

javascript - 禁用文本框而不使用 disabled

php - php 中的 Javascript 数组格式错误

javascript - html 警报不断将我的页面重定向到 index.html,我希望它只显示一个警报

php - 使用 PHP 获取浏览器窗口大小/分辨率

javascript - setTimeout 在 Firefox 中不起作用,在 chrome 和 ie 中不起作用

javascript - HighCharts datetime xAxis 没有缺失值(周末)

jquery - 我怎样才能得到 "view more"div 标签链接到不同的链接一个 Jquery 调出菜单链接

javascript - 当函数绑定(bind)到许多链接时,JavaScript/Jquery 的解释性质是否会增加代码大小?

javascript - Unslider 点和箭头

javascript - explode 无法与破折号一起正常工作