单击事件不起作用后追加 - AngularJS
append after clicked event not working - AngularJS
我正在尝试在AngularJS中使用简单的工具提示。
这是我的 HTML:
<span class="afterme" ng-mouseover="showToolTip('this is something', $event)" ng-mouseleave="hideToolTip();">
<i class="glyphicon glyphicon-exclamation-sign" ></i>
</span>
hrere is JS:
$scope.showToolTip = function(text,$event){
console.log($event);
console.log($event.currentTarget.className);
var abc = $event.currentTarget.className;
angular.element(abc).append('<p class="tooltip2">' + text + '</p>');
};
那里没有发生任何事情,没有显示工具提示,控制台中有类打印afterme
。
当我使用以下代码(附加到正文(时,它工作正常:
var body = angular.element(document).find('body');
body.append(...);
angular.element with jqlite 不做元素选择,据我从文档中可以看出。这意味着angular.element(abc(不起作用(尽管这应该是angular.element('."+ABC(无论如何(事件
但是,$event.currentTarget 是对实际 html 节点的引用,这意味着您可以执行angular.element($event.currentTarget).append('<p class="tooltip2">' + text + '</p>');};
但请记住,这不是在角度中执行此操作的正确方法。你永远不应该在控制器中操作 DOM。这些东西是为指令保留的。
指令将允许您直接访问角度元素(通过链接函数中的参数传入(,并允许您在那里绑定所需的事件。控制器应仅用于维护数据。
请尝试以下操作
angular.element(document.querySelector('.className')).append(...);
好吧,我解决了它,只是将$event.currentTarget.className;
更改为$event.target
并.append
.after
以避免重复工具提示。
所以代码变成:
$scope.showToolTip = function(text,$event){
angular.element($event.target).after('<p class="tooltip2">' +text+ '</p>');
};
$scope.hideToolTip = function($event) {
angular.element(document).find('.tooltip2').remove();
};
HTML 保持不变。
如果我在 AngularJS 中添加了最简单的自定义工具提示,请告诉我:)
这是 CSS:
.tooltip2 {
display:block;
position:absolute;
border:1px solid #333;
background-color:#161616;
border-radius:5px;
padding:10px;
color:#fff;
font-size:12px Arial;
}
现在工作正常
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- AngularJS:我可以跳过函数参数回调吗
- 表追加而不附加最后一个元素
- AngularJS UI路由器不能像ng路由器那样工作
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如何包含特定于每个视图angularjs的javascript文件
- AngularJS:ng之后,重复$scope值未按预期更新
- AngularJS-在JSON选择器中使用变量名
- $window.ga在AngularJS事件中未定义
- AngularJS-使用'true'属性
- 打开一个模态并将其链接到AngularJS中的指令
- 单击事件不起作用后追加 - AngularJS
- Angularjs:错误:'追加'对未实现接口FormData的对象调用.jQuery.param/ad
- 无法't在Angularjs/Jquery中将span元素追加到数组对象中
- AngularJS: Hashbang URL在完全刷新时不断追加到自身
- angularJS动态追加参数$resource
- Angularjs指令追加$http请求
- jQuery的克隆和追加函数在AngularJS指令中没有像预期的那样工作
- AngularJS -追加数据到json数组
- 动态追加值到数组angularjs