【发布时间】:2013-04-11 22:40:25
【问题描述】:
我在网页上显示了一个元素 - 这个元素是一个 twitter 引导图标 -<i class="icon-trash"></i>。
当页面加载时,通过应用隐藏类的样式来隐藏图标:
.hidden {
display: none;
}
现在,我创建了一个指令,其最简单的形式如下:
var app = angular.module('testApp', []);
app.directive('testDir', function() {
return function(scope, iElement, iAttrs) {
iElement.customMethod({
source: function() {
//Some other statements
jQuery(".icon-trash").removeClass('hidden');
}
});
};
});
该指令作为属性放置在输入框上。当用户输入输入文本时,指令函数确实被调用。但是,该图标不再显示,即即使调用了该函数(使用console.log() 检查),jQuery 代码似乎也没有删除隐藏类。知道为什么吗?
【问题讨论】:
-
我认为你应该阅读stackoverflow.com/questions/14994391/… 并考虑使用 ng-class 而不是编写复杂的指令?
-
试试
$('.icon-trash').show(); -
.show()将图标的display属性设置为display: inline。实际显示属性应为display: inline-block,因此不会呈现图标。因此我需要添加和删除将显示none的类 -
好的,然后试试
$('icon-trash').attr('style', 'display: inline-block !important;')。 -
还有知道为什么 jQuery 不删除
hidden类而是将这个样式属性添加到它吗?