javascript - AngularJs - 无法调用标签的单击JavaScript单击功能

标签 javascript jquery html angularjs twitter-bootstrap

我有两个 Bootstrap 选项卡,我在第一个选项卡上显示列表,在第二个选项卡上将有用于添加新记录的文本框。

<ul class="nav nav-tabs naviborder">
   <li class="active" ng-click="showTasksList()">
      <a class="icontab" data-target="#divTasks" data-toggle="tab">Tasks</a>
   </li>
   <li ng-click="addTask()" id="liCreateTask">
      <a id="aAddTask" class="icontab" data-target="#divCreateTask" data-toggle="tab">Create Task</a>
   </li>
</ul>

现在在列表上,我有一些编辑按钮,单击该按钮后,我将填充第二个选项卡中的文本框并自动显示第二个选项卡。

现在,我的问题是:我能够填充文本框,但无法切换到第二个选项卡。

我的 AngularJs 代码:

$scope.EditFieldForceTask = function (TaskData) {           
   $scope.TaskEditMode = true;
   $scope.TaskContactName = TaskData.CONTACT_NAME;
   $scope.TaskContactNumber = TaskData.CONTACT_NUMBER;
   $('#aAddTask').click();
   //$scope.tab2Click();
}

调用此 $('#aAddTask').click(); 后,我收到三个错误,例如

Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.8/$rootScope/inprog?p0=%24apply 
at Error (native)

我还尝试为该标签定义 ng-click 事件,但即使这样也不起作用。

但是当我尝试从控制台调用函数 $('#aAddTask').click(); 时,它工作正常。

谁能告诉我我犯的错误吗?

最佳答案

您正在尝试执行可能会触发摘要周期的点击功能,而摘要周期已经在进行中。

您可以使用 $timeout 或 setTimeout 延迟执行当前摘要周期后执行的点击函数。

$timeout(function() {
  $('#aAddTask').click();
});

关于javascript - AngularJs - 无法调用标签的单击JavaScript单击功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647661/

相关文章:

javascript - 在 setinterval 中使用长间隔时,Node.js 崩溃

javascript - 显示更多 - 显示更少显示 31 行而不是 30 行

javascript - 如何暂时停止字幕文本然后继续?

html - jquery datepicker css问题

html - 如何在 col-md-4 之间添加一些空格?

javascript - 如何从用户脚本访问 iframe 的 javascript?

javascript - 加载这个图片怎么办?

jquery - 如何知道 ENTER 是否用于选择 jQueryUI 自动完成建议?

javascript - JQuery slider 移动文本

javascript - 动态创建多维对象/数组