【发布时间】:2017-01-05 10:40:20
【问题描述】:
我在这里所做的是,当我将鼠标悬停在包装部分上时,会呈现一个叠加层并单击该叠加层会更改输入边框的 CSS 并删除输入的只读属性,反之亦然。
我浏览了很多关于使用 AngularJS 进行动画和 DOM 操作的谷歌搜索和教程。但是我无法在sn-p中实现以下效果。实际上,我在我的项目中使用 javascript 和 jquery 使用了这种效果,现在我想迁移到 angular,我发现在 angular 中进行 jquery DOM 操作不是一个好习惯。我无法使用角度来获得这种效果。谁能帮我以角度的方式做到这一点?
$('body').click(function(e){
e.stopPropagation();
$('.overlay').fadeIn();
$('.wrapper input').css('border','none');
$('.wrapper input').attr('readonly', false)
});
$('.overlay').click(function(e){
e.stopPropagation();
$(this).fadeOut();
$(this).parent().find('input').css('border','1px solid grey');
$(this).parent().find('input').attr('readonly', false);
stop();
});
function stop(){
$('.wrapper input').click(function(e){
e.stopPropagation();
});
}
body{
height: 100%;
width: 100%
}
.wrapper{
position: relative;
}
.wrapper .overlay{
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
z-index: 10;
}
.wrapper .overlay:hover{
background: #000;
opacity: 0.7;
}
.wrapper input{
border: none
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="wrapper">
<div class="overlay"></div>
<input type="text" value="hello world" readonly>
<input type="text" value="hello world" readonly>
<input type="text" value="hello world" readonly>
<input type="text" value="hello world" readonly>
</div>
【问题讨论】:
-
如果你想做任何DOM操作,你可以在指令中进行。
-
我一直在尝试这样做,但它没有发生。你能帮我以有角度的方式获得这种效果吗?
-
相反,写下你想在课堂上申请的所有
css。并添加,删除该类。这可能不是最好的解决方案。我认为你可以做到这一点。
标签: javascript jquery angularjs angularjs-directive