防止元素获得焦点

时间:2014-05-05 00:51:09

标签: javascript angularjs

基本上可以停止一个元素,在我的情况下,button元素可以在javascript中获得焦点吗?

我想要实现的是一个AngularJS指令,当它获得焦点时会显示许多按钮/ UI元素。使用ng-focusng-blur指令很容易实现,但是当我尝试单击任何按钮时,按钮获得焦点,因此div不再具有焦点,触发ng-blur并且按钮被隐藏。

我希望按钮保持可见,而指示元素具有焦点并且可以点击。

Here is a Plunker显示此行为。

提前致谢。

2 个答案:

答案 0 :(得分:6)

我认为不使用任何可聚焦元素(例如<button><a>锚标记会更简单。您可以使用不可聚焦的div并将其设置为按钮,在该div处绑定您的ng事件,它应该可以解决您的问题。您获得了不可聚焦的优势,仍然可以将您的事件附加到该特定元素中。

focusableDiv 指令

变化

<button class="btn" ng-click="add()" ng-show="isFocused">Action</button>

<div class="btn btn-primary" ng-click="add()" ng-show="isFocused">Action</div>

注意:上述更改假设您使用bootstrap-css设置<div>按钮的样式

请参阅此plunker update

答案 1 :(得分:0)

你知道....你不必实际点击按钮。

'<button class="btn" ng-focus="add()" ng-show="isFocused">Action</button>' +

你的傻瓜叉:http://plnkr.co/edit/7uoOF5HS0yrsW5kquodA?p=preview