2

不透明度が80%の画像がたくさんあります。
画像にカーソルを合わせると、 と を使用mouseenterfadeTo('fast' 1);て不透明度を 100% にします。
画像から離れるときは、 と を使用mouseleavefadeTo('fast' 0.8);て不透明度を 80% に戻します。

しかし、ホバーした画像に特定のクラスがある場合、不透明度を 100% のままにして、マウスを離しても 80% に変化しないようにします。

私は試みましたが失敗しました。皆さんが私を助けてくれることを願っています!

$(document).ready(function(){

var subject = 'null';

$('.subject').mouseenter(function(){
    if ($(this).hasClass(subject) == false) {
        $(this).find('.info').fadeTo('fast', 1);
        $(this).find('img').fadeTo('fast', 1);
    }
});
$('.subject').mouseleave(function(){
    if ($(this).hasClass(subject) == false {
        $(this).find('.info').fadeTo('fast', 0);
        $(this).find('img').fadeTo('fast', 0.8);
    }
});


$('.english-link').click(function(){
    $('.english').find('.info').fadeTo('fast', 1);
    $('.english').find('img').fadeTo('fast', 1);
    var subject = 'english';
});
$('.math-link').click(function(){
    $('.math').find('.info').fadeTo('fast', 1);
    $('.math').find('img').fadeTo('fast', 1);
    var subject = 'math';
});
$('.electives-link').click(function(){
    $('.electives').find('.info').fadeTo('fast', 1);
    $('.electives').find('img').fadeTo('fast', 1);
    var subject = 'electives';
});

});

http://jsfiddle.net/JDfpc/

4

4 に答える 4

0

You can use :not jQuery selector on your function that fades out your image, like $('.math:not(.otherclass)').doSomething()

http://api.jquery.com/not-selector/

于 2013-03-18T14:27:20.147 に答える
0

subjectvarの関数をフェードインする場合は、グローバルにする必要があります。

今のところ、あなたはsubject毎回、で再宣言しているので、あなたとvarの範囲内で、は変更されていません。mouseentermouseleavesubject

var globals = {};            //Your global array

$(document).ready(function(){

   globals.subject = 'null'; //Subject is accessible everywhere in your code now
   
   ...

   

    $('.english-link').click(function(){
        $('.english').find('.info').fadeTo('fast', 1);
        $('.english').find('img').fadeTo('fast', 1);
        globals.subject = 'english';
    });
}

実用的な例については、更新されたフィドルを参照してください。

注:HTML 5localStorageを使用して、のような件名を保存することもできますlocalStorage.subject = 'english'

于 2013-03-18T14:33:16.517 に答える
0
$(#subject).hover(function () {
      (this).fadeTo('fast', 1)
 }, function () {
      if(this).hasClass("subject") {
           (this).css('opacity','1');
      }
      else if {
           (this).fadeTo('fast',.8)
      }
    }
 });
于 2013-03-18T14:35:29.997 に答える
-2

You have syntax error,try with this

$('.subject').mouseenter(function(){
if (($(this).hasClass('subject')) == false) {
    $(this).find('.info').fadeTo('fast', 1);
    $(this).find('img').fadeTo('fast', 1);
  }
});

check here

于 2013-03-18T14:26:44.347 に答える