首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hover Modular Jquery上的所有元素都在更改

Hover Modular Jquery上的所有元素都在更改
EN

Stack Overflow用户
提问于 2017-07-26 02:40:12
回答 1查看 39关注 0票数 0

我正在尝试使用模块,但我不确定如何以这种方式更改鼠标悬停事件的范围。正如您可能猜到的那样,我只希望更改悬停在其上的图像。任何帮助都将非常感谢:)这可能是非常明显的,但我真的想不到如何修复它。

代码语言:javascript
复制
console.log(this.$itemIcon);

返回[img, img, img, img, prevObject: m.fn.init(4), context: document, selector: ".work-item img"]

我尝试返回[img, context: img]的位置

以下是我的代码的简短版本:

代码语言:javascript
复制
(function () {

    var set = {
        init: function () {
            this.cacheDom ();
            this.bindEvents ();
        },
        cacheDom: function () {
            this.$item = $(".work-item");
            this.$itemIcon = this.$item.find("img");
        },
        bindEvents: function () {
            this.$itemIcon.hover(growShrink.grow.bind(this), growShrink.shrink.bind(this));
        },
    };

    var growShrink = {
        grow: function() {
            this.$itemIcon.animate({height: "+=10px"}, 100);
        },
        shrink: function() {
            this.$itemIcon.animate({height: "-=10px"}, 100);
        }
    };

    set.init ();

})();

JS Fiddle

我试着让它在功能上与这个完全相同。

代码语言:javascript
复制
$(".work-item").find("img").hover(function(){

    $(this).animate({height: "+=10px"}, 100);

}, function(){
    $(this).animate({height: "-=10px"}, 100);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-26 20:50:53

简而言之,我猜你是在尝试让每个图像单独改变。但是当你执行this.$item = $(".work-item");时,你是在告诉jQuery去寻找所有的<div class="work-item" />,这就是为什么当你将鼠标悬停在一个上面时,它们都会改变。

您需要执行一个for each loop,然后绑定事件

代码语言:javascript
复制
bindEvents: function() {
  this.$itemsIcons.each(function() {
    var $icon = $(this);

    $icon.hover(animations.grow.bind($icon), animations.shrink.bind($icon));
  });
},

JS Fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45311213

复制
相关文章

相似问题

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