2016-12-02 3 views
1

Ich habe versucht, dies zu programmieren und die "mehr lesen" -Link funktioniert gut, aber "weniger zeigen" -Link ist nicht. Ich kann den Fehler nicht erkennen. Hier in diesem Code gibt es ein Anker-Tag mit class="show-less" mit dem ich versuche, span-Element mit class="spanTxt" zu verstecken, aber etwas ist falsch und es ist nicht Spannweite Element versteckt. Ich bekomme es nicht, wenn ich display:inline in mehr Link dann tun kann, warum es nicht funktioniert, wenn ich display:none in weniger Link zu tun.Jquery langen Absatz zeigen mehr/weniger zeigen Link funktioniert nicht

Vielen Dank im Voraus :)

 <!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <meta charset="UTF-8"> 
    <title>jQuery Add Read More Link</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     var maxLength = 300; 
     $(".show-read-more").each(function(){ 
      var myStr = $(this).text(); 
      if($.trim(myStr).length > maxLength){ 
       var newStr = myStr.substring(0, maxLength); 
       var removedStr = myStr.substring(maxLength, $.trim(myStr).length); 

       $(this).replaceWith('<p class="show-read-more">'+newStr+'<a class="read-more" href="#">read more...</a>'+'<span id="hoja" class="spanTxt" style="display:none">'+removedStr+'</span>'+'</p>'); 
      } 
     }); 
     $(".read-more").click(function(){ 
      $(".spanTxt").css("display","inline"); 
      $(".show-read-more").append('<a href="#" class="show-less">show less...</a>'); 
      $(this).hide(); 
     }); 



    $(".show-less").click(function(){ 
      $(".spanTxt").css("display","none"); 


     }); 
    }); 
    </script> 
    <style type="text/css"> 

    </style> 
    </head> 
    <body> 
      <p class="show-read-more">Ut auctor velit sed consectetur rhoncus. Nunc 
      dictum facilisis felis nec facilisis. Integer nec justo vitae orci cursus 
      fermentum. Fusce semper, mi non tempus congue, velit leo efficitur quam, 
      laoreet venenatis libero felis et lacus. Pellentesque mattis hendrerit 
      nisi gravida hendrerit. Mauris sagittis tincidunt scelerisque. Vivamus lectus 
      erat, dictum et magna quis, iaculis finibus nisl. Aliquam quis ante odio. Eti 
      am tincidunt tellus tristique turpis tincidunt, eget condimentum urna rutrum. 
      Donec maximus consequat dolor, sit amet condimentum ipsum gravida ac. Etiam p 
      osuere tellus mauris, et dignissim nisl rutrum quis. Mauris tincidunt ante 
      sed velit maximus, vel tincidunt leo imperdiet. Morbi nec lac 
      us et metus semper porttitor. Sed pellentesque ex at 
      pellentesque scelerisque. Aliquam placerat gravida tortor, in fermentum ante 
      commodo quis. Etiam vehicula elementum quam. Aliquam eu augue eu lacus digni 
      ssim efficitur. Proin ex metus, ornare placerat nisi at, porta lobortis turpi 
      s. Praesent euismod nec nulla ultrices maximus. Vivamus imperdiet quam ac 
      lobortis cursus. Nam dapibus ullamcorper magna vehicula aliquam. Vivamus 
      hendrerit molestie neque. Ut interdum diam a purus ultrices facilisis. 
      Suspendisse molestie tempor dolor, sed tristique enim sagittis vitae. I 
      nteger eu dignissim lectus, commodo eff 
      icitur metus. Morbi quis justo finibus, interdum sem quis, imperdiet tellus 
      andit vel magna nec elementum. Vivamus tempor, urna pharetra euismod euis 
      mod, elit elit tincidunt sem, ut consectetur arcu massa non diam. 
      Etiam scelerisque nisi magna. Nulla facilisi. 
      Sed pharetra nunc lectus, in maximus dolor ornare sit amet.</p> 


    </body> 
    </html>          

Antwort

-1

Sie haben eine Endung für $(document).ready(function(){, am Ende des Skripts nicht hinzugefügt. Sonst wird das Javascript Fehler werfen.

+0

Er tut, und auch wenn sie nicht - das ist nicht das, was das Problem lösen – Dekel

1

Sie haben dort einige Probleme bekam (einige verursacht der Code nicht zu arbeiten, einige der Arbeit verursacht, sondern nur für das erste p.show-read-more Element zu arbeiten

Hier ist die Lösung ist.

$(document).ready(function(){ 
 
    var maxLength = 300; 
 
    $(".show-read-more").each(function(){ 
 
    var myStr = $(this).text(); 
 
    if ($.trim(myStr).length > maxLength) { 
 
     var newStr = myStr.substring(0, maxLength); 
 
     var removedStr = myStr.substring(maxLength, $.trim(myStr).length); 
 
     var newP = $('<p class="show-read-more">'+newStr+'<a class="read-more" href="#">read more...</a>'+'<span id="hoja" class="spanTxt" style="display:none">'+removedStr+'</span>'+'</p>') 
 
     newP.append($('<a href="#" class="show-less">show less...</a>').hide()) 
 
     $(this).replaceWith(newP); 
 
    } 
 
    }); 
 
    $(".read-more").click(function(){ 
 
    $(this).parent('.show-read-more').find('.spanTxt').css("display","inline"); 
 
    $(this).parent('.show-read-more').find('.show-less').show(); 
 
    $(this).hide(); 
 
    }); 
 
    $(document).on('click', '.show-less', function(){ 
 
    $(this).parent('.show-read-more').find('.read-more').show(); 
 
    $(this).parent('.show-read-more').find(".spanTxt").hide(); 
 
    $(this).hide(); 
 
    }); 
 
});
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
 
<p class="show-read-more">Ut auctor velit sed consectetur rhoncus. Nunc 
 
    dictum facilisis felis nec facilisis. Integer nec justo vitae orci cursus 
 
    fermentum. Fusce semper, mi non tempus congue, velit leo efficitur quam, 
 
    laoreet venenatis libero felis et lacus. Pellentesque mattis hendrerit 
 
    nisi gravida hendrerit. Mauris sagittis tincidunt scelerisque. Vivamus lectus 
 
    erat, dictum et magna quis, iaculis finibus nisl. Aliquam quis ante odio. Eti 
 
    am tincidunt tellus tristique turpis tincidunt, eget condimentum urna rutrum. 
 
    Donec maximus consequat dolor, sit amet condimentum ipsum gravida ac. Etiam p 
 
    osuere tellus mauris, et dignissim nisl rutrum quis. Mauris tincidunt ante 
 
    sed velit maximus, vel tincidunt leo imperdiet. Morbi nec lac 
 
    us et metus semper porttitor. Sed pellentesque ex at 
 
    pellentesque scelerisque. Aliquam placerat gravida tortor, in fermentum ante 
 
    commodo quis. Etiam vehicula elementum quam. Aliquam eu augue eu lacus digni 
 
    ssim efficitur. Proin ex metus, ornare placerat nisi at, porta lobortis turpi 
 
    s. Praesent euismod nec nulla ultrices maximus. Vivamus imperdiet quam ac 
 
    lobortis cursus. Nam dapibus ullamcorper magna vehicula aliquam. Vivamus 
 
    hendrerit molestie neque. Ut interdum diam a purus ultrices facilisis. 
 
    Suspendisse molestie tempor dolor, sed tristique enim sagittis vitae. I 
 
    nteger eu dignissim lectus, commodo eff 
 
    icitur metus. Morbi quis justo finibus, interdum sem quis, imperdiet tellus 
 
    andit vel magna nec elementum. Vivamus tempor, urna pharetra euismod euis 
 
    mod, elit elit tincidunt sem, ut consectetur arcu massa non diam. 
 
    Etiam scelerisque nisi magna. Nulla facilisi. 
 
    Sed pharetra nunc lectus, in maximus dolor ornare sit amet.</p> 
 
<p class="show-read-more">Ut auctor velit sed consectetur rhoncus. Nunc 
 
    dictum facilisis felis nec facilisis. Integer nec justo vitae orci cursus 
 
    fermentum. Fusce semper, mi non tempus congue, velit leo efficitur quam, 
 
    laoreet venenatis libero felis et lacus. Pellentesque mattis hendrerit 
 
    nisi gravida hendrerit. Mauris sagittis tincidunt scelerisque. Vivamus lectus 
 
    erat, dictum et magna quis, iaculis finibus nisl. Aliquam quis ante odio. Eti 
 
    am tincidunt tellus tristique turpis tincidunt, eget condimentum urna rutrum. 
 
    Donec maximus consequat dolor, sit amet condimentum ipsum gravida ac. Etiam p 
 
    osuere tellus mauris, et dignissim nisl rutrum quis. Mauris tincidunt ante 
 
    sed velit maximus, vel tincidunt leo imperdiet. Morbi nec lac 
 
    us et metus semper porttitor. Sed pellentesque ex at 
 
    pellentesque scelerisque. Aliquam placerat gravida tortor, in fermentum ante 
 
    commodo quis. Etiam vehicula elementum quam. Aliquam eu augue eu lacus digni 
 
    ssim efficitur. Proin ex metus, ornare placerat nisi at, porta lobortis turpi 
 
    s. Praesent euismod nec nulla ultrices maximus. Vivamus imperdiet quam ac 
 
    lobortis cursus. Nam dapibus ullamcorper magna vehicula aliquam. Vivamus 
 
    hendrerit molestie neque. Ut interdum diam a purus ultrices facilisis. 
 
    Suspendisse molestie tempor dolor, sed tristique enim sagittis vitae. I 
 
    nteger eu dignissim lectus, commodo eff 
 
    icitur metus. Morbi quis justo finibus, interdum sem quis, imperdiet tellus 
 
    andit vel magna nec elementum. Vivamus tempor, urna pharetra euismod euis 
 
    mod, elit elit tincidunt sem, ut consectetur arcu massa non diam. 
 
    Etiam scelerisque nisi magna. Nulla facilisi. 
 
    Sed pharetra nunc lectus, in maximus dolor ornare sit amet.</p>

+0

Danke für die super Lösung, aber es ist mir immer noch nicht zufriedenstellend für die nicht immer wissen, wo ich schief gelaufen ist... . –