Pio*_*Pio 4 twitter-bootstrap angularjs
我有一个网站,我有多个按钮.按下按钮后,我会填充一个列表,但我的问题是最后按下的按钮一直被按下(有:active类).我想过使用angular's $timeout来重置按钮,虽然这个removeClass功能不起作用.
我的观点如下:
div(ng-controller='productButtonController')
div(ng-repeat='product in products')
div.col-md-4
button.btn.btn-block.sell-button(id='{{product._id}}' ng-click='sell()'){{product.name}}
Run Code Online (Sandbox Code Playgroud)
和我的控制器:
app.controller('productButtonController', ['$scope', '$timeout', 'productServices', 'flash',
function($scope, $timeout, productServices, flash) {
productServices.getProducts()
.success(function(result) {
$scope.products = result.data
})
.error(showErrorMessage(flash))
$scope.sell = function() {
console.log(this.product)
that = this
$('#' + that.product._id).removeClass('active')
}
}
])
Run Code Online (Sandbox Code Playgroud)
$window.document.activeElement.blur();
Justin Poehnelt的便捷GIST代码优雅地解决了这个问题.
app.directive('blur', [function () {
return {
restrict: 'A',
link: function (scope, element) {
element.on('click', function () {
element.blur();
});
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
将blur属性添加到单击后需要模糊的按钮/元素.例如.
<button type="button" blur>Click me</button>
Run Code Online (Sandbox Code Playgroud)
如果您只想覆盖引导按钮的焦点状态,则可以使用以下命令:
.btn:focus{
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
然后你的按钮应该是这样的:
<button class="btn btn-default">My button 1</button>
Run Code Online (Sandbox Code Playgroud)
在引导样式表之后加载覆盖按钮状态的样式表也很重要.
编辑:
抱歉,上一步只删除了大纲.按钮的背景颜色仍然保持不变.
由于我知道您需要更改:focus按钮的状态,因此bootstrap不会将任何活动类附加到单击的元素:
$('#' + that.product._id).blur();
Run Code Online (Sandbox Code Playgroud)
如果这对您有用,请告诉我.
| 归档时间: |
|
| 查看次数: |
8894 次 |
| 最近记录: |