首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery如何在悬停时仅更改一个父级

jquery如何在悬停时仅更改一个父级
EN

Stack Overflow用户
提问于 2012-09-13 20:19:41
回答 3查看 584关注 0票数 5

当我将鼠标悬停在<p>标签上时,我只想更改一个父级。代码是:

代码语言:javascript
运行
复制
$('.hover').each(function () {
    $(this).parent().hover(function () {
            $('p').parent(this).css('font-size','30px');
        }, function () {
            $('p').parent(this).css('font-size','10px');
    });
});

HTML是:

代码语言:javascript
运行
复制
   <ul>
        <li>1 <p class='hover'>xxxx</p></li>
        <li>2 <p class='hover'>yyyy</p></li>
    </ul>

当我将鼠标悬停在"xxxx“上时,我希望"1”和"xxxx“更改,但"2”和"yyyy“不做任何更改;当我将鼠标悬停在"yyyy”上时,我希望"2“和"yyyy”更改,但"1“和"xxxx”不做任何更改。

我是jQuery的新手。

EN

回答 3

Stack Overflow用户

发布于 2012-09-13 20:24:52

代码语言:javascript
运行
复制
$('p.hover').parent().hover(function() {
    $(this).children('p').css('font-size','30px');
}, function () {
    $(this).children('p').css('font-size','10px');
});

您不必使用each循环来添加悬停。如果选择了多个元素,则会将事件应用于所有元素。

话虽如此,我还是稍微优化了你的代码。

我已经在段落的父级上添加了悬停,就像你做的那样。通过在事件的回调中使用$(this),我实际上可以选择悬停的元素并对该元素应用样式。

因为我希望在段落中应用字体大小,所以我首先选择所需的子项。

以上总结如下:

在悬停事件(.hover())中查找其父级的段落元素,即

  • li元素

一旦调用了hover事件:

  • Get current element (.children('p'))
  • Apply

    内部段落样式获取当前元素

票数 6
EN

Stack Overflow用户

发布于 2012-09-13 20:22:37

你可以使用

代码语言:javascript
运行
复制
$('p').closest('li').css('font-size','30px');
票数 0
EN

Stack Overflow用户

发布于 2012-09-13 20:25:37

在您的例子中,<p>的父类是<li>。您需要:

代码语言:javascript
运行
复制
$('.hover').parent().parent().hover(
    function () {
        $(this).css('font-size','30px');
    }, function () {
        $(this).css('font-size','10px');
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12406094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档