2014-02-06 55 views
0

我已盡了我最大的努力來做到這一點,..花了我幾個小時,仍然無法讓它工作。 單擊readmore時隱藏片段並顯示完整內容,然後將按鈕重命名爲HIDE,然後再次單擊hide時,必須再次顯示片段並隱藏完整內容。隱藏摘錄並在重新切換時重新顯示

這裏是我的fiddle

jQuery代碼

jQuery(document).ready(function() { 
    jQuery('.testi-more').click(function (e) { 
     e.preventDefault(); 
     var same = jQuery(this).closest('.testi-wrapper'); 
     jQuery(this).closest('.testi-wrapper').children('.testi-full').slideToggle('slow'); 
    }); 

    if (jQuery('.testi-full').is(": hidden")) { 
     jQuery(this).closest('.testi-wrapper').children('.testi-excerpt').show(); 
     jQuery(this).closest('.testi-wrapper').children('.testi-more').html('Read moar'); 
    } else { 
     jQuery(this).closest('.testi-wrapper').children('.testi-excerpt').hide(); 
     jQuery(this).closest('.testi-wrapper').children('.testi-more').html('Hide'); 
    } 
}); 

請優化我的代碼,然後解釋爲什麼,所以我可以研究它。謝謝!

回答

0

這是你在找什麼

jQuery(function($) { 
    $('.testi-more').on('click', function(e) { 
     e.preventDefault(); 
     $(this).text(function(_,txt) { 
      return txt == 'Read more' ? 'Hide' : 'Read more'; 
     }).closest('.testi-wrapper').children('.testi-full') 
      .slideToggle('slow').end().children('.testi-excerpt').slideToggle(); 
    }); 
}); 

FIDDLE

它切換滑動,同時也與切換在當前文本檢查回調的文本,並返回另一個文本依據在目前的文字是什麼等

+0

它必須隱藏片段。 – vinex08

+0

@ vinex08 - 噢,好吧!像這樣 - > http://jsfiddle.net/czW8z/8/ – adeneo

+0

是的〜!謝謝,,,但這是更優化我認爲http://jsfiddle.net/decx/czW8z/11/ – vinex08

相關問題