AngularUI弹出窗口样式改变父元素点击
AngularUI popover style change of parent element on click
我有一个非常具体的问题。最近我想出了如何在AngularUI弹出窗口中添加一个关闭按钮。最初,用户必须点击弹出窗口父元素来打开和关闭它,所以我添加了一些功能来改变点击事件中元素的样式。通过添加关闭按钮,我想在用户单击它时模拟相同的效果。我在这里放了个管子来玩。
到目前为止,我已经尝试在弹出窗口模板中添加ng-click="toggle(); style=!style"
,但这不起作用。我认为我必须访问popoverToggle
指令中的style
变量,但我不知道如何做到这一点。也可以在HTML中进行操作。
<div><span ng-click="toggle()">X</span></div>
<p>content</p>
popoverToggle.js
angular.module('app')
.config(function($tooltipProvider) {
$tooltipProvider.setTriggers({'open': 'close'});
})
.directive('popoverToggle', function($timeout) {
return {
scope: true,
link: function(scope, element, attrs) {
scope.toggle = function() {
$timeout(function() {
element.triggerHandler(scope.openned ? 'close' : 'open');
scope.openned = !scope.openned;
scope.style = !scope.style; // doesn't do anything either
});
};
return element.on('click', scope.toggle);
}
};
});
index . html
<span ng-class="{'border-gray': style}" style="margin: 40px" ng-click="style=!style" class="red-btn">
<span popover-placement="bottom" popover-template="'popover-template.html'"
popover-trigger="open" popover-append-to-body="true" popover-toggle>click me</span>
</span>
解决方案非常简单,所有需要更改的是style
变量。只需将其改为$scope.style
,如下所示:
popover-template.html
<div><span ng-click="toggle(); $scope.style=!$scope.style">X</span></div>
<p>content</p>
index . html
<span ng-class="{'border-gray': $scope.style}" style="margin: 40px" ng-click="$scope.style=!$scope.style" class="red-btn">
<span popover-placement="bottom" popover-template="'popover-template.html'"
popover-trigger="open" popover-append-to-body="true" popover-toggle>click me</span>
</span>
相关文章:
- innerHTML赢得't改变元素
- 可以't改变'name'元素的属性
- 为什么当我分配给element.style时,我的元素的样式没有改变
- 这是关于Jquery/JS的,如果我改变元素's HTML-我可以对它执行其他Jquery/JS操作吗
- 为什么硒会改变元素's href
- 有些元素没有被改变,即使它们应该被改变
- 从中删除元素后,javascript 数组的长度不会改变
- 如何使JQuery同位素与改变高度的元素一起工作
- javascript悬停在一个元素上会改变另一个元素
- 为什么我的
- 元素上的颜色属性没有改变我的 .hover() 事件处理程序
- 函数不能计算分数和改变页面元素的值
- 我希望我的操作改变它所附加的DOM元素
- Jquery在多个元素改变前调用函数
- 在图像元素改变了src之后,计时函数的运行时间
- 防止firefox在溢出元素改变时重置滚动条位置
- HTML范围元素改变CSS过滤器
- Knockout.js |可观察数组只在最后一个元素改变时触发
- jQuery自定义验证器方法在元素改变时被调用
- jQuery用子元素改变变量
- Div元素改变位置后的效果