1 回答
TA贡献1796条经验 获得超10个赞
在您当前的代码中,您试图从整个集合中获取数据属性,因此它将返回集合中第一个元素的数据属性值。
除了class用于一组元素而不是id(id 在上下文中应该是唯一的 -$("#tesq")将只选择第一个元素)。
所以根据悬停的元素来做,你可以this在事件处理程序回调中使用它来引用元素。
PHP :
<ul class="menu">
<?php foreach($page->children() as $subpage): ?>
<li class="tesq" data-color="<?= $subpage->color() ?>">
<a href="<?= $subpage->url() ?>">
<?= html($subpage->title()) ?></a>
</li>
<?php endforeach ?>
</ul>
查询:
$(function() {
$('.tesq').hover(function() {
var $this = $(this);
$("body").css('backgroundColor', function () {
return $this.data('color')
});
}, function() {
$("body").css('backgroundColor', 'lightgrey')
});
})
回调在这里完全没有必要,你可以避免它。
$(function() {
$('.tesq').hover(function() {
$("body").css('backgroundColor', $(this).data('color'));
}, function() {
$("body").css('backgroundColor', 'lightgrey')
});
})
- 1 回答
- 0 关注
- 137 浏览
添加回答
举报