Problema riferimento al click

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Ciao a tutti ragazzi
era da parecchio che non utilizzavo il .toggle() e proprio ieri ho saputo che da jQuery 1.9 è eliminato e deprecato.
Devo far si che al click su di un anchor (<a>) venga fatto il "toggle" dell'altezza di un div per nascondere/mostrare un testo nascosto al document.ready e inoltre stampare nell'ancora il testo "Per saperne di più"/"Chiudi". Ho trovato il seguente script che mi fa tutto ciò, il problema è che ho bisogno di inserire in queste righe di codice il riferimento sull'anchor sulla quale ho cliccato. Perchè se in pagina ho n-div con la classe in questione il mostra/nascondi lo fa su tutti ma in realtà l'azione deve avvenire SOLO sull'elemento su cui clicco e non su tutti gli altri (una sorta di $(this).parent() ecc...)! Come posso fare? Vi posto il codice modificato.

Grazie anticipatamente a chi saprà darmi una mano!

Codice:
 //plugin per vedere + o - testo nei box video

  var adjustheight = 255;
  var defaultHeight = "auto";
  var moreText = "Per saperne di più";
  var lessText = "Chiudi";
  $(".row .panel article").css('height', adjustheight).css('overflow', 'hidden');

   $.fn.clicktoggle = function(a, b) {
         return this.each(function() {
             var clicked = false;
             $(this).bind("click", function() {
                 if (clicked) {
                     clicked = false;
                     return b.apply(this, arguments);
                 }
                 clicked = true;
                 return a.apply(this, arguments);
             });
         });
     };

     function moretext() {
         $(".row .panel article").css('height', 'auto').css('overflow', 'visible');
         $(".row .panel p.more a").text(lessText);
         return false;
     }

     function lesstext() {
         $(".row .panel article").css('height', adjustheight).css('overflow', 'hidden');
         $(".row .panel p.more a").text(moreText);
         return false;
     }
    

  $(".row .panel p.more a").clicktoggle(moretext, /plugin per vedere + o - testo nei box video (trigger)

O provato anche ad utilizzare l'animate ma accade che lo fa una volta soltanto per poi bloccarsi:

Codice:
  $(".row .panel p.more a").click( function () {
       $(this).parent().prev().animate({
            height: ( $(this).parent().prev().height() == adjustheight) ? $(this).parent().prev().css("height","auto") : adjustheight
        }, 200);

       return false;
    });
 

Discussioni simili