• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Mootools Fx.Slide Toggle Problem

MasterofDistres

Kleiner Weinapfel
Registriert
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?
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
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 ;)). :)
 

MasterofDistres

Kleiner Weinapfel
Registriert
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)
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Wenn du meinen Code verwendest müsstest du bei dir im Template noch was ändern.

Aus dem Link:
<a href="#postcomment" title="Einen Kommentar schreiben">Einen Kommentar schreiben</a>

Muss dann werden:
<a href="#postcomment" title="Einen Kommentar schreiben" class="linkToggle">Einen Kommentar schreiben</a>

:)