javascript - 如何防止点击时选择选项卡?

标签 javascript angularjs angular-bootstrap bootstrap-tabs

如何防止选择选项卡来添加其他选项卡? 下面我已经隔离了这个问题,如果我单击带有加号的选项卡然后它被选中,我想完全防止这种情况,只需单击并调用 addNewTab() 函数即可。

var app = angular.module('app', ['ui.bootstrap']);
app.controller('homeCtrl', function($scope) {

  $scope.tabs = [{
    name: "Tab 1",
    active: true
  }, {
    name: "Tab 2",
    active: false
  }, {
    name: "Tab 3",
    active: false
  }];

  $scope.addTab = function($event) {
    //$event.praventDefault();//not working
    //$event.stopPropagation();//not working
    console.log($event);
    console.log("do some stuff and call addNewTab()")
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.1.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

<div ng-app="app">
  <div ng-controller="homeCtrl">
    <tabset>
      <tab ng-repeat="tab in tabs" heading="{{tab.name}}" active="tab.active">
        {{tab.name}}
      </tab>
      <tab select="addTab($event)">
        <tab-heading>
          <i class="glyphicon glyphicon-plus-sign"></i>
        </tab-heading>
      </tab>
    </tabset>
  </div>
</div>

最佳答案

var app = angular.module('app', ['ui.bootstrap']);
app.controller('homeCtrl', function($scope) {

  $scope.tabs = [{
    name: "Tab 1",
    active: true
  }, {
    name: "Tab 2",
    active: false
  }, {
    name: "Tab 3",
    active: false
  }];

  $scope.addTab = function($event) {
    //$event.praventDefault();//not working
    //$event.stopPropagation();//not working
    console.log($event);
    console.log("do some stuff and call addNewTab()")
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.1.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

<div ng-app="app">
  <div ng-controller="homeCtrl">
    <tabset>
      <tab ng-repeat="tab in tabs" heading="{{tab.name}}" active="tab.active">
        {{tab.name}}
      </tab>
      <!-- <tab ng-click="addTab($event)"> !-->
      <li>
      <a ng-click="addTab($event)">
         <i class="glyphicon glyphicon-plus-sign"></i>
      </a>
      </li>
    </tabset>
  </div>
</div>

关于javascript - 如何防止点击时选择选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894650/

相关文章:

javascript - 无法从 SELECT 中获取值

javascript - 在 typescript Jest 上下文中, Node 配置配置是 `undefined` 吗?

javascript - ChartJs 不显示数据

angularjs - Angular Bootstrap Carousel Slide Transition 无法正常工作

javascript - CKEditor + IE7+8 'null or not an object' 错误

javascript - 使用 Object.create() 时,如何使用其他对象键引用对象键

javascript - 跳过 HTML 标签,仅向内容添加突出显示,而不是向 HTML 标签添加突出显示

javascript - 在 AngularJS 中使用窗口访问 iframe 内容

javascript - Angular animate 的 classNameFilter 与 Angular-bootstrap

javascript - Angular ui-router 在路径参数后扩展 url