【问题标题】:Why can I not attach ng-click to my element?为什么我不能将 ng-click 附加到我的元素?
【发布时间】:2015-11-03 20:40:32
【问题描述】:

ng-click 事件未在我的元素上触发。我已经尝试过下面给出的内联控制器脚本。我无法发出警报。有没有我应该警惕的集成问题?这可能是什么问题?

 <a class="button black"><div class="light" ng-click="AddCrims()"></div>Add Crims</a>

myApp.controller('MyCtrl', ['$scope', '$http', function ($scope, $http) {
    $scope.AddCrims = function () {
        alert('hi');
     }
});

如果有人帮助我,我将不胜感激。谢谢。

【问题讨论】:

  • 你的 HTML / Angular 是什么样的?你的元素与ng-click
  • 你是如何执行函数的?
  • 需要更多信息。你能展示更多你拥有的东西吗?
  • 您在 HTML 上使用什么标记?
  • @Adjit
    添加 Crims

标签: javascript jquery html angularjs angularjs-directive


【解决方案1】:

假设所有要点都是正确的,例如ng-app="myApp" 并且以某种方式您的控制器已正确注册,例如ng-controller="MyCtrl",您需要在 &lt;a&gt; 上添加 ng-click - 而不是 &lt;div&gt;(显示为空)。请注意以下...

<a class="button black" ng-click="AddCrims()"><div class="light"></div>Add Crims</a>

JSFiddle Link - 工作演示


  • 注意:如果您打算将事件附加到 &lt;div&gt; - 您需要以某种方式确保它不是空元素,例如定义静态高度/宽度。作为进一步的观察,值得注意的是,锚标签应该有一个 href="" 属性,即使是空的,为了可访问性目的。

JSFiddle Link - 例如&lt;div ng-click="AddCrims()"&gt;&lt;/div&gt;

【讨论】:

  • 这可能是因为&lt;a&gt; 在 div 有机会之前捕获了点击事件。
  • 您可以将其添加到嵌套的&lt;div&gt;,但按原样 - 我不知道该元素是什么。就我而言,如果没有关联的样式,它是一个 0x0 空元素。我们如何点击它?
  • @Chris 很可能是因为 DOM 层的创建方式,并且元素不占用任何空间,因为其中没有我们知道的内容或固定大小。如果您使用z-index,您可能能够将 div 拉到锚标签前面,从而执行点击不div
  • 啊是的,有道理,无论哪种方式我认为你的答案都是正确的
  • 我同意你的看法。我们需要更多关于&lt;div&gt; 的信息。如果样式正确 - 我们可以点击它 - JSFiddle example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 2014-10-10
  • 2021-11-07
  • 1970-01-01
  • 2015-08-13
  • 1970-01-01
相关资源
最近更新 更多