jqlite中.first()的替代方案
alternative for .first() in jqlite
我已经使用angularjs指令创建了一个下拉列表,该指令运行良好,现在我正在指令本身中编写所有css。在其中一个功能中,当鼠标悬停在下拉列表选项上时,它应该将背景色更改为#27A1EC
-蓝色,将文本色更改为白色,在鼠标离开时,背景颜色为白色,文本颜色为实际颜色,一切都很好,但我面临的一个问题是,由于JQLite中没有JQuery .find()
选项,我尝试使用如下所示
我用了angular.element(document.querySelector('#parent'))
而不是elm.find('a').first()
,我不知道这是否正确
elm.find("a").bind("mouseover", function() {
scope.actualColor = scope.textColor.color;
//elm.find('a').first().css('color', 'white').css('background-color', '#27A1EC');
angular.element(document.querySelector('#parent')).css('color', 'white').css('background-color', '#27A1EC');
});
elm.find("a").bind("mouseleave", function() {
//elm.find('a').first().css('color', scope.actualColor).css('background-color', 'white');
angular.element(document.querySelector('#parent')).css('color', scope.actualColor).css('background-color', 'white');
});
现在,当我将鼠标悬停在下拉列表中的Parent2时,悬停颜色的变化正在重定向并应用于Parent1
,有人能告诉我一些解决方案吗
Plunker
在您的情况下,问题是您有多个id为父级的元素,因此在使用querySelector时,它将返回id为parent
的第一个元素。
您可以使用.eq(0)而不是first()
elm.find('a').eq(0).css('color', 'white');
但更好的解决方案是为父元素分配一个类父元素,而不是像那样的id
<a class='parent' href='#' ng-click='getValue(optGroupLabel,optGroupValue)'>{{optGroupLabel}}<span class='value'>{{optGroupValue}}</span></a>
然后
angular.element(elm[0].querySelector('.parent')).css('color', scope.actualColor).css('background-color', 'white');
相关文章:
- 轻量级zxcvbn替代方案
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- ng映射方向备选方案
- 为什么$.brower被弃用?还有什么更好的替代方案
- 执行php函数的onclick事件的其他替代方案
- Android上URL方案的替代方案
- :not选择器不适用于ul类-备选方案
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- iPad虚拟键盘-哪一个-javasctript解决方案
- jqlite中.first()的替代方案
- AJAX HTTP基本身份验证解决方案
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- Chart.js-添加渐变而不是纯色-实现解决方案
- learnyounode杂耍异步解决方案不工作
- 想在jquery中设计一个配色方案
- 在lodash上有没有一个替代方案.merge.apply(_,x);其中x是对象的数组
- 了解因子分解解决方案
- 在Javascript中使用eval的替代方案
- 提交表单后的最佳解决方案
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能