• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Div einmalig aufklappen - display:none oder display:block

Schön das gemerkt wurde das das über eine Klasse sinnfoller zu handhaben ist. Ich finde es immer wieder erschreckend wie viele Leute nicht den Unterschied zwischen Klasse und ID wissen...


Besser als ByClassName wäre es aber jquery zu benutzen, da ByClassName im IE nicht 100% funktioniert.
Wie meinst du das? Hatte bis jetzt noch keine Probleme damit. Oder meinst du die fehlende Browserunterstützung bei IE kleiner Version 8, was sich mit folgendem Code beheben lässt?
Code:
(function() {
    if (!document.getElementsByClassName) {
        var indexOf = [].indexOf || function(prop) {
            for (var i = 0; i < this.length; i++) {
                if (this[i] === prop) return i;
            }
            return -1;
        };
        getElementsByClassName = function(className,context) {
            var elems = document.querySelectorAll ? context.querySelectorAll("." + className) : (function() {
                var all = context.getElementsByTagName("*"),
                    elements = [],
                    i = 0;
                for (; i < all.length; i++) {
                    if (all[i].className && (" " + all[i].className + " ").indexOf(" " + className + " ") > -1 && indexOf.call(elements,all[i]) === -1) elements.push(all[i]);
                }
                return elements;
            })();
            return elems;
        };
        document.getElementsByClassName = function(className) {
            return getElementsByClassName(className,document);
        };
        Element.prototype.getElementsByClassName = function(className) {
            return getElementsByClassName(className,this);
        };
    }
})();​

PS: Bei einem Verweis auf jQuery hätte ich noch sinnvoll empfunden, das auch hingewiesen wird, dass dann alle inline-Styleangaben in das CSS gepackt werden sollen, da man eh schon ne Klasse benutzt. Und dann einfach jQuery.toggle() benutzen. Oder eine zweite Klasse anlegen, welche das Element sichtbar macht und die Klassen mittels jQuery.toggleClass() austauschen.
 
Leeeuuute, mit fehlt der Hinweis darauf, diesen Unsinn hier wegzulassen: href="javascript:void(0)" ;)
 
HTML:
Ich finde es immer wieder erschreckend wie viele Leute nicht den Unterschied zwischen Klasse und ID wissen...
Wieso um Alles in der Welt, müssen sich Menschen darüber so künstlich aufregen? Und was soll daran bitte erschreckend sein?
Es gibt Wichtigeres...

Das Script wurde im Internet gefunden und individuell angepasst. Es funktioniert einwandfrei.

Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden. Allerdings ist dies offensichtlich, selbst mit
Class nicht möglich. Sonst hätte es ja funktioniert.



Leeeuuute, mit fehlt der Hinweis darauf, diesen Unsinn hier wegzulassen: href="javascript:void(0)"

Leider falsch gedacht. Wie schon im vorrigen Thread erwähnt, wird außerdem noch mit innerHTML gearbeitet. Aber abgesehen davon,
dass das Template, welches erworben wurde, noch unzählige weitere Scripte enthält und die erwähnten Links noch onclicks beinhalten.

Oder gibt es alternativen?

Ohne: javascript:void(0)
funktioniert das Template nicht.
 
Wieso um Alles in der Welt, müssen sich Menschen darüber so künstlich aufregen? Und was soll daran bitte erschreckend sein?
Es regt sich keiner auf. Erschreckend ist das insofern als man das wissen muss bei Javascript. Ist eine Grundvoraussetzung, um mit JS sinnvolle Dinge tun zu können.

Es gibt Wichtigeres...
Volle Zustimmung. Dennoch darf man etwas als erschreckend bezeichnen, oder nicht?

Das Script wurde im Internet gefunden und individuell angepasst. Es funktioniert einwandfrei.
Ja, das ist der blanke Horror eines jeden geübten JS Entwicklers. Denn was man im Netz findet ist nach meiner Beobachtung zu 95 % mit Fehlern gespickt oder irgendwie komplett Murks.

Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden. Allerdings ist dies offensichtlich, selbst mit
Class nicht möglich.
Dann stimmt bei deinem Code was nicht. Das hätte dir hier bestimmt niemand empfohlen, wenn es nicht funktionieren würde.
Du solltest dir bei Nutzung eines Forums angewöhnen, immer beantwortbare Fragen zu stellen. Ein "funktioniert nicht" ist keine Frage.

Leider falsch gedacht. Wie schon im vorrigen Thread erwähnt, wird außerdem noch mit innerHTML gearbeitet.
Du verwechselst da was. innerHTML hat mit diesem javascript:void(0) Mist nichts zu tun. Wenn eine Sache anklickbar sein soll für JS Code benutzt man CSS zur Formatierung und einen (inline) Eventhandler für die Registrierung.

Oder gibt es alternativen?
Ja, weglassen!

Ohne: javascript:void(0) funktioniert das Template nicht.
Dann hast du es falsch implementiert oder das Template ist woanders kaputt. Aber erraten können wir das nicht und ohne Frage können wir nicht antworten.
 
Wieso um Alles in der Welt, müssen sich Menschen darüber so künstlich aufregen?
Ich habe mich nicht künstlich aufgeregt, sondern nur etwas festgestellt und fand es erschreckend.

PS: Für Zitate benutzt man nicht die
HTML:
-Tags.


[QUOTE="LikeStar, post: 383983, member: 39919"]Und was soll daran bitte erschreckend sein?[/QUOTE]Das der Fragende einen Mangel an Grundkenntnissen hat. Aber das hätte man ja schon aus folgendem ableiten können:[QUOTE="LikeStar, post: 383885, member: 39919"]Muss ich dort eine ID oder ein CLASS eingeben?[/QUOTE]

Genauso erschreckend wäre wenn ein KFZ-Mechaniker den Unterschied zwischen Stahlfelgen und Alufelgen nicht weiß und aus Mangel an Grundkenntnissen die falschen Radbolzen (Radschrauben) zur Montage benutzt!


[QUOTE="LikeStar, post: 383983, member: 39919"]Es gibt Wichtigeres...[/QUOTE]Was denn? Das etwas [I]vielleicht[/I] trotzdem funktioniert auch wenn es falsch gemascht wurde?


[QUOTE="LikeStar, post: 383983, member: 39919"]Das Script wurde im Internet gefunden und individuell angepasst. Es funktioniert einwandfrei.[/QUOTE]Um das noch einmal mit dem KFZ-Mechaniker zu vergleichen: Die montierten Felgen sind erst mal fest! Aber ist das auch sicher???


[QUOTE="LikeStar, post: 383983, member: 39919"]Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden. Allerdings ist dies offensichtlich, selbst mit Class nicht möglich. Sonst hätte es ja funktioniert.[/QUOTE]Falsche Annahme wegen Kenntnismangel. Denn aus sowas (hui Zeit für ein Selbstzitat)[QUOTE]Was denn? Das etwas [I]vielleicht[/I] trotzdem funktioniert auch wenn es falsch gemascht wurde?[/QUOTE]werden dann falsche Schlusse gezogen, ohne mal darüber nachzudenken, dass es doch möglich ist (weil es ja schließlich vorgeschlagen wurde) und vielleicht ein Fehler bei der Umsetzung (Programmierung) unterlaufen ist.


[QUOTE="LikeStar, post: 383983, member: 39919"]Leider falsch gedacht. Wie schon im vorrigen Thread erwähnt, wird außerdem noch mit innerHTML gearbeitet. Aber abgesehen davon, dass das Template, welches erworben wurde, noch unzählige weitere Scripte enthält und die erwähnten Links noch onclicks beinhalten.[/QUOTE]Dir ist aber schon bekannt, das ein Link, also [INLINE]<a href="Linkziel"...[/INLINE] benutzt wird auf eine Seite oder innerhalb einer Seite zu einem Anker zu verweisen. Beides machst du nicht, also ist es Unsinn. Genauso wie das [INLINE]onclick="return toggleMe('para11');"[/INLINE]. Warum [INLINE]return[/INLINE]? Gibt deine Funktion [INLINE]toggleMe('para11');[/INLINE] einen Wert zurück? Zumindest habe ich davon nichts entdecken können.
Aber mehr als Unsinn ist dein gesammtes Konstrukt[HTML]<a href="javascript:void(0)" onclick="return toggleMe('para11');">Link</a>
Wenn falsch dann wenigstens korrekt falsch:
HTML:
<a href="javascript:toggleMe('para11');">Link</a>


Oder gibt es alternativen?
Weg lassen oder ein anderes HTML-Element benutzen, das der gewünschten Funktion gerecht wird.


Ohne: javascript:void(0)
funktioniert das Template nicht.
Sorry, aber dann hat der Ersteller des Templates wohl auch einen Mangel an Kenntnissen..



@dbarthel: Könntest du noch mal auf meine Frage aus Beitrag #21 bezüglich folgendem eingehen?
Besser als ByClassName wäre es aber jquery zu benutzen, da ByClassName im IE nicht 100% funktioniert.
 
Zuletzt bearbeitet:
@dbarthel: Könntest du noch mal auf meine Frage aus Beitrag #21 bezüglich folgendem eingehen?

@miniA4kuser:

Aber ja, sie bezog sich auf Probleme mit/in älteren Browsern, außerdem finde ich jquery generell schön.

Hoffe, diese persönliche Meinung zu Jquery muss ich der Staatsanwaltschaft nicht näher erklären. :)
 
Zuletzt bearbeitet:
Alles klar, dachte schon mir wäre was in Sachen getElementsByClassName() entgangen. Aber jetzt weiß ich wie das gemeint war.

Deine Meinung zu jQuery ist voll in Ordnung. Natürlich ist jede Benutzung eines Frameworks geschmackssache und daher gibt es ja auch mehrere. Habe auch nix gegen jQuery, nutze es ja auch in verschiedenen Projekten.

PS: Sollte jetzt keine Breitseite gegen dich werden, wollte einfach nur ein paar Sachen hinterfragen und Kommentieren.
 
Aber mal ehrlich, wie lächerlich und penibel muss ein Mensch sein, jeden einzelnen Satz zu zitieren um diesen dann anschließend noch zu kommentieren? Und was hat der arme KFZ Mechatroniker am Hut?

Wer sich, im Übrigen, mit HTML/CSS beschäftigt, muss nicht zwingend gleich perfekt Javascript beherrschen.
Dafür gibt es solche Online Plattformen, die sich durch Werbung finanzieren.

Und erzähl uns bloß nicht, dass du perfekt Javascript beherrschst ... Auch du wirst noch weiter lernen müssen.
Sorry, aber dann hat der Ersteller des Templates wohl auch einen Mangel an Kenntnissen..

Sitzt du am Rechner und rubbelst an deiner Kristalkugel, und glaubst du liegst dann genau richtig. Dabei kennst du noch nicht mal
die Geschichte. Wie Alles begann.

:rolleyes:
 
Zuletzt bearbeitet von einem Moderator:
Eine Bitte an Alle: Lasst uns bitte zur sachlichen Fragestellung zurück kehren.

LikeStar: Du hattest zuletzt geschrieben:
Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden. Allerdings ist dies offensichtlich, selbst mit
Class nicht möglich. Sonst hätte es ja funktioniert.

Nochmal dazu: Dann ist deine Implementierung falsch oder im Template stimmt etwas nicht. Zeig mal, was du da versucht hast, sont kommen wir nicht weiter.
 
Eine Bitte an Alle: Lasst uns bitte zur sachlichen Fragestellung zurück kehren.
Ich habe nur, so wie du in Beitrag #26, die Aussagen von LikeStar kommentiert.


In Beitrag #21 bin ich auf getElementsByClassName() eingegangen, und habe sogar Tips und Links gegeben, sofern sich LikeStar für den Ansatz von dbarthel interessiert oder entscheiden möchte.


In Beitrag #28 habe ich lediglich den aktuell bekannten Code hinterfragt und javascript:void(0) behandelt.

Also nicht nur gemeckert, sondern meiner Meinung nach auch sachlich komentiert.


Aber mal ehrlich, wie lächerlich und penibel muss ein Mensch sein, jeden einzelnen Satz zu zitieren um diesen dann anschließend noch zu kommentieren?
Ich finde das nicht penibel, sondern, je nach Zitat, sinnvoll um den Kontext zu bewahren. Wenn du meine Kritik lächerlich findest, kann ich mich ja hier dann raushalten und diesen Thread als erledigt ansehen.


Und was hat der arme KFZ Mechatroniker am Hut?
Ich redete von einem KFZ-Mechaniker, aber wenn du das so zitieren möchtest... ;)


Wer sich, im Übrigen, mit HTML/CSS beschäftigt, muss nicht zwingend gleich perfekt Javascript beherrschen.
Dachte du wolltest dich in diesem Thread mit JavaScript beschäftigen, aber egal. Auch habe ich nicht behauptet, das du perfekt JavaScript beherrschen musst, aber auf Grundlagen darf ich doch noch hinweisen. Diese sollte man sich anschauen, wenn man sich mit JavaScript beschäftigen möchte bzw. muss.


Dafür gibt es solche Online Plattformen, die sich durch Werbung finanzieren.
Das liest sich jetzt aber unschön für die jenigen Leute, welche freiwillig ihre Zeit investieren und anderen helfen wollen das Problem zu lösen und/oder Fehler aufzuzeigen.


Und erzähl uns bloß nicht, dass du perfekt Javascript beherrschst ... Auch du wirst noch weiter lernen müssen.
Ich habe nicht gesagt das ich perfekt JavaScript beherrsche...


Sitzt du am Rechner und rubbelst an deiner Kristalkugel, und glaubst du liegst dann genau richtig. Dabei kennst du noch nicht mal
die Geschichte. Wie Alles begann.
Nee :) wenn dann frage ich ob ich kkapsners Kugel mal ausleihen darf.. ;)
Klar kenne ich diese Geschichte nicht. Trotzdem bin ich aber wohl nicht der einzige, der meint das Template ist nicht so toll...
 
Trotzdem bin ich aber wohl nicht der einzige, der meint das Template ist nicht so toll...

auch wenn uns bisher ein genauer Überblick über das konkrete Problem mit dem Template verwährt wurde.

Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden. Allerdings ist dies offensichtlich, selbst mit
Class nicht möglich. Sonst hätte es ja funktioniert.

was genau funktionier denn nun nicht?
Irgendwie habe ich da etwas den Überblick verloren.

Ohne: javascript:void(0)
funktioniert das Template nicht.

das javascript vor void(0) braucht es jedenfalls nicht, selbst wenn void(0) nötig ist.

noch unzählige weitere Scripte enthält und die erwähnten Links noch onclicks beinhalten.

na und, erstens kann man mehrere "onclicks" kombinieren und zweitens solltest du dir dann, alleine schon um den Überblick zu behalten, überlegen, in wie weit sich Scripte zusammenfassen lassen.

Stichwort währe hier eventuell head.js
 
Zuletzt bearbeitet:
Wer sich, im Übrigen, mit HTML/CSS beschäftigt, muss nicht zwingend gleich perfekt Javascript beherrschen.
Der Unterschied zwischen IDs und Klassen ist eigentlich eine HTML/CSS/DOM Grundlage...
Dabei kennst du noch nicht mal die Geschichte. Wie Alles begann.
Dann erzähl' uns doch die Geschichte. Bzw. zeig' doch mal, was "nicht funktioniert", wenn du dein unsinniges href="javascript:void(0)" entfernst.

Nun folgen weitere Anpassungen und diesmal sollen alle DIVS angesprochen werden.
Alle <div>s in einem Dokument kann man mit document.getElementsByTagName("div") ansprechen...

@dbarthel:
das javascript vor void(0) braucht es jedenfalls nicht, selbst wenn void(0) nötig ist.
Wenn das im href-Attribut steht, braucht man das javascript: davor schon.

PS: Viele deiner Fehler hättest du in der Fehlerkonsole selber finden und beseitigen können.
 
Zurück
Oben