【问题标题】:Using jquery .hover, with $this使用 jquery .hover 和 $this
【发布时间】:2014-11-13 03:53:30
【问题描述】:

这是我的 HTML 元素之一。

<textarea type="text" data-class-changer="question" class="questioninputcss js-questioninput" data-integer-question="878"></textarea>

当我将鼠标悬停在一个元素上时,我希望该元素切换类

我也尝试了 addclass 和 removeclass,但我不确定它们是否会被动画化 - 我需要。无论如何,我的脚本都没有工作。

这是我的鼠标悬停脚本,它可以工作并且几乎与第一个不工作的悬停脚本相同。

    $(document).on("mouseover", ".questioninputcss",function() {
        $(this).toggleClass("questioninputcssHidden", 700);
    });

这些是我尝试过的许多悬停脚本:

    $(document).on("hover", ".questioninputcss",function() {
        $(this).toggleClass("questioninputcssHidden", 700);
    });


    $(document).hover(
        function(){ $(this).addClass('questioninputcssHidden') },
        function(){ $(this).removeClass('questioninputcssHidden') }
    );


    $(".js-questioninput").hover(
        function(){ $(this).addClass('questioninputcssHidden') },
        function(){ $(this).removeClass('questioninputcssHidden') }
    );



    $(".js-questioninput").hover(function(){
        $(this).toggleClass("questioninputcssHidden", 700);
    });



    $(".questioninputcss").hover(function(){
        $(this).toggleClass("questioninputcssHidden", 700);
    });



    $(document).hover(function(){
        $(this).toggleClass("questioninputcssHidden", 700);
    });



    $(document).hover(function(){
        $(this).toggleClass("questioninputcssHidden", 700);
    }, function(){
        $(this).toggleClass("questioninputcssHidden", 700);
    });

【问题讨论】:

  • 可能是因为".answerinputcss" !== ".questioninputcss"?
  • 您是否尝试将其打开,然后每次悬停时关闭?或者只是在您处于悬停状态时打开课程?
  • 不幸的是,@Doorknob 否定。我忘记将那个问题设置为在此处发布的问题,但它也不起作用。我更新了我的帖子。
  • 如果你能发布一个小提琴,这样我们就可以玩你的代码了:)
  • @ajmajmajma 这两个都没有——我完全没有效果。但是,只要鼠标在元素内,我希望新类保持不变,然后在鼠标离开时恢复默认值。所以,在悬停状态时。

标签: jquery html


【解决方案1】:

按照你的描述,你所要做的就是:

.questioninputcss:hover {
  //your desired hover styles in here (the styles you have on answerinputcssHidden)
}

如果您希望它按照您的要求进行动画处理,请向基本元素添加一个过渡,就像这样

.questioninputcss {
transition: 1s all;

根据您的小提琴,这里是一个工作示例 - http://jsfiddle.net/alexjm/kphq9ap2/9/

如果你想使用这个,不要也使用 hover() jquery 方法,因为它们会互相争斗。但是,如果您想使用悬停,如果您阅读了文档 - 您遇到的问题是鼠标进入和离开目标项目时悬停绑定到两者 - 请参阅此处以获取参考 http://api.jquery.com/hover/

所以,你会做这样的事情 -

   $( ".questioninputcss" ).hover(
 function() {
    $( this ).addClass("questioninputcssHidden", 700);
 }, function() {
    $( this ).removeClass("questioninputcssHidden", 700);
 }
 );

看这里-http://jsfiddle.net/alexjm/kphq9ap2/31/

【讨论】:

  • 你的小提琴奏效了,谢谢。您应该考虑在此处添加代码的过渡部分,其他人可以看到。它确实以与 mouseenter 相同的方式进行转换,但实际上完全不同 - 但在这种情况下,它会更好地工作。我给了你一个 +1。
  • 它在小提琴中 :)
  • 它在小提琴中,但如果这最终成为最佳答案,我将其标记为 - 任何来看的人都会阅读您的回复,而可能不是 cmets。他们会浪费时间试图弄清楚为什么它不转换。因为,您说“我所要做的就是添加悬停”。
  • 该死,我刚刚使用它,“过渡”行对我的 jQuery 动画产生了负面影响。
  • @Nemo-Omen,是的,你不想同时使用 css 方法和 javascript/jquery 方法,他们都以不同的方式做同样的事情,所以他们会互相争斗.您可以使用任何一种方法,我认为 css 更干净一点:)。
猜你喜欢
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2023-03-12
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多