javascript - addEventListener 到 AngularJS 中的简单指令示例

标签 javascript angularjs

试图获得 this非常基本的指令示例。根据一些调查,“elem”似乎是 HTMLHeadingElement(继承自 Element)的对象。不确定为什么 elem.addEventListener 不起作用。此外,elem.bind 似乎有效,但这不是 global bind ,对吧?

此外,如果有人可以触及文档对象模型 (DOM) 级别 2 HTML 规范与文档对象模型 (DOM) 级别 1 规范,那就太好了。碰巧第一次遇到这个,这是DOM元素的新对象层次结构吗?

下面是我的指令的链接函数:-

link: function(scope, elem, attrs) {
  // elem will be HTMLHeadingElement object!
  scope.name = 'New Micheal!';
  elem.addEventListener('click', function(e) {
      elem.css('background-color', 'red');
    })
    /*elem.bind('mouseover', function(e) {
      elem.css('background-color', 'red');
    });
    elem.bind('mouseout', function(e) {
      elem.css('background-color', 'white');
    });*/
}

最佳答案

elem 不是 DOM 元素,它是一个 jQlite 对象 (angular.element) 或一个 jQuery 对象(如果 jQuery 在 angular.js 之前包含在页面中)

DOM 节点是 elem[0]

可以使用angular.element API这是 jQuery 方法的子集。

对于点击监听器将是:

elem.bind('click',handlerfunc);

This isn't the global bind()

不...它是上述 API 的一部分并且匹配 jQuery bind()

bind() (deprecated, use on()) - Does not support namespaces, selectors or eventData

关于javascript - addEventListener 到 AngularJS 中的简单指令示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981800/

相关文章:

javascript - AngularJS - 条件逻辑不会在链接单击时重新显示原始数据

javascript - 在模型更改后切换 $setValidity

javascript - 如何修复 d3 折线图的时间刻度?

javascript - 不需要渲染组件时的最佳实践

javascript - Requirejs 不加载库

javascript - 如何传入 props 以仅显示表中的某些列?

javascript - Listener document.addEventListener(function() {函数如示例中所示

javascript - Indesign(IDML 文件)自动化使用 HTML5 和 Javascript

css - 如何在平均堆栈中设置 Caps Lock 警告气球

jquery - 打开和关闭容器 (div)