【问题标题】:Toggle Class not working in hover in jquery切换类在 jquery 中悬停时不起作用
【发布时间】:2015-06-03 17:26:47
【问题描述】:

我需要什么

  • 点击后我需要使用toggleclass切换图像。

    css代码

     .favourate{ display:block; background:url('/images/star1.png') no-repeat; width:24px; height:25px; float:right;}
      .favourate.faved, .favourate:active{ background:url('/images/star1_hover.png') no-repeat; transition:.2s ease all;}
    

javascript代码:

 $(document).ready(function(){
var eventData = {};
if (localStorage.getItem('eventData') !== null) {
    $.each(eventData = JSON.parse(localStorage.getItem('eventData')), function(id){
        $('#'+id).addClass('faved');
    });
}
$('.favourate_dextop').click(function(e){
    e.preventDefault();
    if (eventData[this.id] !== undefined) {
        delete eventData[this.id];
    }else{
        eventData[this.id] = $(this).data();
    }
    $(this).toggleClass('faved');
    localStorage.setItem('eventData', JSON.stringify(eventData));
    console.log(eventData);
});  
     });

我尝试过的

  • 我已经尝试在 css 中移除悬停,然后切换类工作正常。 jsfiddle:http://jsfiddle.net/xxuhL555/

  • 这里是当我没有删除 css 中的悬停时的 jsfiddle:http://jsfiddle.net/o61rqj95/

  • 如何通过 css 或 jquery 处理此问题。

  • 这个是toggleclass还是css的问题。

调试

  • 点击时图片发生变化。

  • 然后重新点击红色星标(图片不会改变)。

  • 在移除悬停时它可以正常工作,这不是我的要求。

输出

  • 它应该像切换图像而不从图像中移除悬停。

【问题讨论】:

  • 没有任何效果,背景图片在点击时会改变,但不会再次改变
  • 它对我来说也很好用,我在 chrome 或 firefox 中没有错误,当我点击时图像会发生变化和变回。你用的是什么浏览器+版本?
  • 检查这个小提琴:jsfiddle.net/o61rqj95
  • 我用 chrome 和 mozilla 检查没有任何工作

标签: javascript jquery html css


【解决方案1】:

在 Chrome 中,Fiddles 会在 localStorage 代码上引发错误,从而阻止点击处理程序被注册。点击事件代码本身可以正常工作。

【讨论】:

  • 图像不切换 jsfiddle.net/o61rqj95 ,一旦图像被切换,chorme 就没有任何工作,它不会被切换回来。
  • fiddles 不会抛出错误,我的意思是说,这不是错误,在悬停时点击有效(图像更改),:很好,现在再次点击红色星号,它似乎没有切换它不是。 .我在说...
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 2012-08-28
  • 2012-12-05
  • 1970-01-01
相关资源
最近更新 更多