Jquery:附加“;每个“;到“;关于“;事件
Jquery: Attaching "each" to an "on" event
我有一个结果列表,我使用jQuery向其中添加了一个悬停事件,所以标题将显示为红色。
它工作得很好。
<li><a class="hoverbox"></a><h1 class="ttl">Result 1</h1></li>
<li><a class="hoverbox"></a><h1 class="ttl">Result 2</h1></li>
<li><a class="hoverbox"></a><h1 class="ttl">Result 3</h1></li>
$(document).on({
mouseenter: function () {
$('.ttl').css("color","red");
},
mouseleave: function () {
$('.ttl').css("color","inherit");
}
}, ".hoverbox");
问题是每当我把鼠标移到一个元素上时,所有的元素都会变成红色。我只想让特定的元素变成红色。
我试着使用jQuery的each(),但无法理解如何使用给定的语法。
您需要使用JavaScript执行此操作有什么原因吗?使用CSS可以非常容易地实现这一点。
HTML:
<ul class="list">
<li><a class="hoverbox"></a><h1 class="ttl">Result 1</h1></li>
<li><a class="hoverbox"></a><h1 class="ttl">Result 2</h1></li>
<li><a class="hoverbox"></a><h1 class="ttl">Result 3</h1></li>
</ul>
CSS:
.list > li:hover .ttl {
color: red !important; // if you have to override an already applied theme (like wordpress)
}
您可以使用以下内容来获得预期的结果。
$('.ttl').on('mouseenter',function() {
$(this).css("color","red");
}).on('mouseleave',function() {
$(this).css("color","inherit");
});
没有JS的解决方案
https://jsfiddle.net/w4j5hsLh/3/
.hoverbox{
position:absolute;
z-index:999;
width:100%;
height:100%;
}
li{width:100px;height:100px;position:relative;}
li:hover > .ttl {
color:red;
}
不能使用$('.ttl')
,因为它引用了所有.ttl
元素,您需要使用$(e.currentTarget).parent().find('.ttl')
来选择当前.ttl
元素:
$(document).on({
mouseenter: function (e) {
$(e.currentTarget).parent().find('.ttl').css("color","red");
},
mouseleave: function (e) {
$(e.currentTarget).parent().find('.ttl').css("color","inherit");
}
}, ".hoverbox");
然而,正如其他人所说,建议使用CSS,而不是使用JS。
如果要使用普通对象同时附加多个事件处理程序,则必须进行微小的更改。
$('.ttl').on({
mouseenter: function () {
$(this).css("color","red");
},
mouseleave: function () {
$(this).css("color","inherit");
}
});
检查这个jsfiddle的演示
相关文章:
- Jquery:附加“;每个“;到“;关于“;事件
- 关于动态元素中循环中的事件
- 我可以发送几个关于不断变化的行动的事件吗
- 关于性能,最好的方法是什么:setInterval()或body上的全局事件
- "关于“;事件未使用动态内容激发
- 关于事件绑定的jQuery
- 通过angular传递关于事件预防的信息;s事件对象
- 关于如何将 JS onchange 事件传递给 PHP 的建议
- 关于键控事件的这句话是什么意思
- 如何创建一个“;关于模糊”;或“;将模糊”;事件
- jQuery 1.7.1“;关于“;函数不适用于常规Javascript事件触发器
- 关于Javascript鼠标事件的困惑
- AngularJS$范围$关于多个事件
- 关于 JavaScript 事件
- 如何在文本框上设置Session变量'关于php中的更改事件
- 关于Angular ui日历的事件添加方法
- 关于使用Jquery创建的文本事件
- 向用户发送与Facebook相同的关于新事件的通知's使用SignalR的通知
- 为什么函数式响应式编程都是关于事件流的
- 关于事件以及如何正确解除绑定的问题