2014-11-24 42 views
0

我有一個非常簡單的腳本(因爲我是一個小白JQ)
它的那麼簡單,我也不打算讓小提琴,但會後下面的代碼:jQuery的淡入(),一點點的幫助,請

 var tip; 
        var orig; 
        var switched = 0; 



        $('.output').hover(function() { 

         tip = $(this).attr('title'); 
         orig = $(this).text(); 


         if(tip != orig) 
         { 
         $(this).text(tip).fadeIn(2000); 
         switched = 1; 
         } 

        }, function() { 

         if(switched == 1) 
         { 
         $(this).text(orig).fadeIn(); 
         } 

        }); 

它按預期工作,因爲我將鼠標放置與類「輸出」一span它切換與spantitle的價值,但我的問題是,它不淡入的文字。我如何讓它淡入標題? (均在鼠標和鼠標移出)

HTML是這樣的:

<span class="output italic" title="Computer_Science.jpg">Computer_Science.j...</span> 
+2

如果已經顯示的內容,然後將不會有任何衰落效應 – 2014-11-24 05:45:28

+0

感謝,指出! :) – Ryan 2014-11-24 05:57:51

回答

3

你需要調用一個fadeInfadeOut已經完成。這是因爲,如果它已經可見,那麼另一個fadeIn將不會對它產生任何影響。所以,你必須首先fadeOut,然後一旦完成,請撥打fadeIn

Both,fadeInfadeOut都有一個回調作爲參數,一旦效果完成就會調用該參數。將您的代碼作爲匿名回調包裝爲fadeOut

片段

var tip; 
 
var orig; 
 
var switched = 0; 
 

 
$('.output').hover(function() { 
 
    tip = $(this).attr('title'); 
 
    orig = $(this).text(); 
 
    if (tip != orig) { 
 
     $(this).fadeOut(function() { 
 
      $(this).text(tip).fadeIn(); 
 
      switched = 1; 
 
     }); 
 
    } 
 
}, 
 
    function() { 
 
     if (switched == 1) { 
 
      $(this).fadeOut(function() { 
 
       $(this).text(orig).fadeIn(); 
 
       switched = 0; 
 
      }); 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span title="Title" class="output">Hello</span>

+0

完美!謝謝! – Ryan 2014-11-24 05:49:38

+0

不能接受你的答案几分鐘,將會在時鐘用完時這樣做 – Ryan 2014-11-24 05:50:41