-2

jqueryでクラスを削除する際に問題が発生しました。

クラスをクリックしてクラスを追加および削除したかったのですが、機能しません。なんで?

$('.class').click(function() {
    $(this).addClass("class1");
    $(this).removeClass("class");
});

非表示関数は正常に機能しますが($(this).hide()も)、その後は画像の変更が機能しません。

$('.class').mouseenter(function() {
    jQuery(this).attr("src", 'icons/heart.png');
}).mouseleave(function() {
    jQuery(this).attr("src", 'icons/heart_disabled.png' );
});

$('.class1').mouseenter(function() {
    jQuery(this).attr("src", 'icons/heart_disabled.png');
}).mouseleave(function() {
    jQuery(this).attr("src", 'icons/heart.png' );
});

だからクラスは変わらないと思います。

4

1 に答える 1

0

イベントをデリゲートする必要があります。イベント ハンドラーはクラス名ではなく要素にバインドされています。そのため、クラスが追加/削除されていないと思われます。次のことを試してください。

$(document).on({
   mouseenter: function() {
      this.src = 'icons/heart.png';
   },
   mouseleave: function() {
      this.src = 'icons/heart_disabled.png';
   }
}, 'img.class');

$(document).on({
   mouseenter: function() {
      this.src = 'icons/heart_disabled.png';
   },
   mouseleave: function() {
      this.src = 'icons/heart.png';
  }
}, 'img.class1');
于 2013-01-27T12:45:14.430 に答える