1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mootools Fx.Slide Toggle Problem

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von MasterofDistres, 12.04.08.

  1. MasterofDistres

    MasterofDistres Kleiner Weinapfel

    Dabei seit:
    07.12.06
    Beiträge:
    1.139
    Hallo,
    ich hab auf meinem Blog (Wordpress) mithilfe von Mootools den Slideeffekt für das Kommentarformular eingebaut, sodass dieses erst nach einem Klick auf „Einen Kommentar schreiben“ eingeblendet wird; funktioniert auch alles ganz wunderbar.

    Das Script:
    Code:
    window.addEvent( 'domready', function(){
    	$$( '.moreDiv' ).each(function(item){
    		var thisSlider = new Fx.Slide( item.getElement( '.more' ), { duration: 500 } );
    		thisSlider.hide();
    		item.getElement( '.divToggle' ).addEvent( 'click', function(){ thisSlider.toggle(); } );
    	} );
    } );
    Der HTML-Code:
    Code:
    <div class='moreDiv'>
    	<div class='divToggle'>
    	<h2 id="postcomment">Schreibe <span>einen Kommentar:</span></h2>
    </div>
    	<div class='more'>
    Inhalte...
    </div>
    </div>
    
    Jetzt habe ich aber eben ein Plugin zum Zitieren von Kommentaren eingebaut, das nach einem Klick auf selbiges zum Kommentarformular scrollt und den Inhalt in das Textfeld einfügt.

    Der Code für den Einfüg-Link
    Code:
     function quote_comments_link($before='<p class="quote_comments">', $after='</p>', $text='Diesen Beitrag zitieren') {
            global $comment;
            print $before.'<a class="quote_comments_link" onclick="quoteComment('.$comment->comment_ID.')" href="#commentform">'.$text.'</a>'.$after;
        }
    
    Soweit, so gut: Jetzt könnte es natürlich ein wenig verwirrend sein, dass das Formular noch ausgeblendet ist, weshalb ich jetzt versucht habe, dass das Feld automatisch eingeblendet wird, wenn man auf den „Zitier“-Link klickt; nur leider kann ich mir überhaupt nicht behelfen, wie ich den Link und das Script so vereinbaren kann. Oder ist das gar nicht möglich?
     
  2. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Bin mir nicht zu 100% sicher dich auch richtig verstanden zu haben. :)

    In deinem Script steht ja:
    Code:
    item.getElement( '.divToggle' ).addEvent( 'click', function(){ thisSlider.toggle(); } );
    
    Das setzt einen Event Handler auf alles was die Klasse „divToggle“ besitzt. Per Klick auf diesen Layer (in deinem Fall) wird die Funktion toggle() auf den Layer mit dem Kommentarfeld angewendet (und der Effekt wird ausgelöst).

    Jetzt müsstest du dem Zitier-Link auch noch ne Klasse geben (sagen wir mal class="linkToggle") und dann müsstest du den Code noch anpassen:
    Code:
    item.getElement( '.linkToggle' ).addEvent( 'click', function(){ thisSlider.toggle(); return false; } );
    

    Dann sollte es eigentlich funktionieren (wenn ich dich richtig verstanden habe ;)). :)
     
  3. MasterofDistres

    MasterofDistres Kleiner Weinapfel

    Dabei seit:
    07.12.06
    Beiträge:
    1.139
    Danke schonmal :)

    Ich hab deinen Code mal verwendet, jedoch wird das Feld dann sofort eingeblendet, auch bevor man auf den Link geklickt hat.
    Ich kann mal eben die Seite mit einwerfen, das könnte evtl. noch helfen (Also einfach mal einen Beitrag mit einigen Kommentaren anschauen (Ein Klick auf „einen Kommentar“ blendet dann das Formular ein)
     
  4. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Wenn du meinen Code verwendest müsstest du bei dir im Template noch was ändern.

    Aus dem Link:
    Muss dann werden:
    :)
     

Diese Seite empfehlen