Kleine JS-Funktion funktioniert im Firefox nicht wie sie sollte

Smoothi

Bekanntes Mitglied
Ich habe eine kleine Funktion, um ein Objekt auszublenden.

Code:
function hideElements()
 {
  var elementNames = hideElements.arguments;
  for (var i=0; i < elementNames.length; i++) {
     var elementName = elementNames[i];
     document.getElementById(elementName).style.display='none';
   }
 }

Aufgerufen habe ich das Ganze wie folgt (Benutze JavaEE+JSF):
Code:
<input type="Button" class="button_small_right" value="Nein" onclick="hideElements('remove_box')"/>
Die "remove_box" ist eine typische "Möchten Sie wirklich löschen"-Meldung. :) Wenn ich "Nein" drücke, sollte es eben einfach nur wieder ausgeblendet werden.

Jetzt der Witz dabei... im Internetexplorer funktioniert es tadellos. (gerade da *g)
Im Firefox funktioniert das nur mit einem Doppelklick.

Die andere Funktion klappt aber wie sie soll... also diese zum Einblenden, nur dass da anstatt "none" "block" steht.
 

Evil-Devil

Top Contributor
Hast du schon mit Firebug geschaut ob du vielleicht Null-Referenzen hast und ob hidelEments.arguments überhaupt etwas enthält?
Die Voranstellung vom Namen der Funktion vor arguments ist überflüssig bzw. hinfällig. Hab jedenfalls diese Schreibweise noch nie gesehen.
 

Smoothi

Bekanntes Mitglied
Ja den Funktionsnamen kann ich tatsächlich weglassen.

Stimmt... an Firebug hätte ich mal denken können. ;)

Code:
<div class="button_box">
    <input type="Button" class="button" value="Löschen" onclick="showElements('remove_box')"/>
</div>

<div id="remove_box" class="remove_box">
    <div class="info">Möchten Sie dieses Objekt wirklich löschen?</div>
    <div class="button_box">
        <h:commandButton styleClass="button_small_left" value="Ja" action="#{objectPM.delete(objectPM.object)}"/>
        <input type="Button" class="button_small_right" value="Nein" onclick="hideElements('remove_box')"/>
    </div>
</div>

Also wenn ich oben auf den Löschen-Button drück, wird die untere Box sichtbar... Wenn ich unten auf "Nein" drücke, sollte sie einfach wieder zu gehen. Genau das macht er... jedoch führt er danach gleich wieder die Anzeige-Funktion aus...also wahrscheinlich wird der Löschen-Button nochmal ausgeführt. Er bewegt sich auch mit, wenn ich den unteren Button klicke...

Die Funktionen folgen also so schnell hintereinander, dass man es einfach nicht mitbekommt, dass es zwischendurch zu war.

Also liegts nicht am JavaScript, sondern an der HTML-Struktur, aber des sind 2 getrennte DIV-Boxen, wobei es garkeinen Sinn ergibt, dass der Löschen-Button mit betätigt wird... im IE funktioniert es ja auch wie es soll.

Wie ich das lösen kann, weiß ich leider nicht.
 

Evil-Devil

Top Contributor
Gibt es in dem finalen Sourcecode vielleicht zwei Elemente mit ein und derselben ID und was sagt Firebug? Kann man die Site sonst irgendwo einsehen?
 
Zuletzt bearbeitet:

Smoothi

Bekanntes Mitglied
@faetzminator
Ich hab mit Firebug getestet und Haltepunkte in beiden Funktionen gesetzt. Zunächst hält er in der Funktion, in der er sollte (also die zum Ausblenden) und dann nochmal in der anderen (also die zum Einblenden). In dem Button selbst, wird nur die Ausblendefunktion aufgerufen. Paar Zeilen darüber ist ein Button, der die Sache einblendet. (siehe dritter Post)

@Evil-Devil
Es gibt nur einmal meine remove_box. Diese hat nur den gleichen Klassen- wie ID-Namen..das sollte ja kein Problem sein.
Die arguments-Variable wird schon ordnungsgemäß gefüllt.

Wie gesagt, anhand der Haltemarken seh ich auch, dass die Funktion richtig ausgeführt wird. Problem ist nur, dass die showElements-Funktion direkt nach der hideElements-Funktion ausgeführt wird. Die beiden Funktionen unterscheiden sich nur durch die Zeile:
Code:
document.getElementById(elementName).style.display='none';

Bei hide steht da "none", bei show "block".

Wenn ich den Button "löschen" klicke, öffnet sich ordnungsgemäß die Bestätigungsbox. Wenn ich nun "nein" drücke, dann wird anscheinend der löschen-Button erneut geklickt, sodass die hide-Methode zwar ausgeführt wird, aber unmittelbar danach wieder die show-Methode, sodass man es einfach nicht sieht und den Anschein erweckt, dass die Box garnicht erst verschwindet. Wenn ich den "Nein"-Button drücke, wird der "Löschen"-Button ebenfalls mit betätigt... ich seh, dass da sich beim Firefox beim Buttonklick ja der enthaltene Text etwas verscheibt. Im Internetexplorer ist das nicht der Fall... Die beiden Elemente sind ja auch nicht untergeordnet, sonder sollte unabhängig voneinander sein.

EDIT: den Source darf ich leider nicht veröffentlichen...
 

Evil-Devil

Top Contributor
Wenn ich den Button "löschen" klicke, öffnet sich ordnungsgemäß die Bestätigungsbox. Wenn ich nun "nein" drücke, dann wird anscheinend der löschen-Button erneut geklickt, sodass die hide-Methode zwar ausgeführt wird, aber unmittelbar danach wieder die show-Methode, sodass man es einfach nicht sieht und den Anschein erweckt, dass die Box garnicht erst verschwindet. Wenn ich den "Nein"-Button drücke, wird der "Löschen"-Button ebenfalls mit betätigt... ich seh, dass da sich beim Firefox beim Buttonklick ja der enthaltene Text etwas verscheibt. Im Internetexplorer ist das nicht der Fall... Die beiden Elemente sind ja auch nicht untergeordnet, sonder sollte unabhängig voneinander sein.
Die beiden Knöpfe liegen nicht zufällig übereinander? Hatte das mal in einem Projekt das die Klicks durchgereicht wurden. Was ist wenn du die Funktion über die Konsole mit ihren Parametern aufrufst? Dann sollte ja an sich die Logik richtig feuern. (Firebug Konsole)
 

Smoothi

Bekanntes Mitglied
Form brachte einen neuen Fehler XD

Ein Button der sich untendrunter befand funktionierte nicht mehr...

h:eek:utputFormat klappt aber
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Kleine Frage: Multilevel Navigation Angular, React, JQuery - Fragen zu JavaScript 2
H Funktion aufrufen ohne Button Angular, React, JQuery - Fragen zu JavaScript 14
M Funktion in einer Funktion Angular, React, JQuery - Fragen zu JavaScript 1
Lighty Math.pow funktioniert nicht innerhalb Funktion/Schleife Angular, React, JQuery - Fragen zu JavaScript 7
pkm Frage zu Parametern bei der toLocaleString-Funktion von Date Angular, React, JQuery - Fragen zu JavaScript 3
R Wenn-Dann-Funktion in einem Adobe Acrobat Formular Angular, React, JQuery - Fragen zu JavaScript 0
X Mehrfaches Nutzen einer Funktion Angular, React, JQuery - Fragen zu JavaScript 1
P Funktion aufrufen Angular, React, JQuery - Fragen zu JavaScript 1
Anfänger2011 Ergebnis einer Funktion direkt in Variable speichern Angular, React, JQuery - Fragen zu JavaScript 6
L Wenn Dann Funktion Angular, React, JQuery - Fragen zu JavaScript 13
A Auswahlliste mit Funktion verknüpfen Angular, React, JQuery - Fragen zu JavaScript 13
E Darf anonyme Funktion Parameter haben ? Angular, React, JQuery - Fragen zu JavaScript 4
F JavaScript replace funktion Angular, React, JQuery - Fragen zu JavaScript 1
L Javascript Maus Funktion Angular, React, JQuery - Fragen zu JavaScript 4
Kenan89 JS OO Funktion wird falsch aufgerufen Angular, React, JQuery - Fragen zu JavaScript 2
G Funktion mit Onload vom Body nur einmal ausführen Angular, React, JQuery - Fragen zu JavaScript 9
M Problem mit Java-Funktion Angular, React, JQuery - Fragen zu JavaScript 3
R onload Aufruf einer Funktion in einer Funktion Angular, React, JQuery - Fragen zu JavaScript 2
A Problem mit checkdate-Funktion. Angular, React, JQuery - Fragen zu JavaScript 3
L Funktion und Variablen Angular, React, JQuery - Fragen zu JavaScript 4
G php funktion in java einfügen Angular, React, JQuery - Fragen zu JavaScript 6
C JS funktion funktioniert nicht / wird nicht aufgerufen. Angular, React, JQuery - Fragen zu JavaScript 2
M Funktion "Speichern Unter" abschalten. Angular, React, JQuery - Fragen zu JavaScript 14
T wie kann ich daraus eine Funktion machen? Angular, React, JQuery - Fragen zu JavaScript 2
M Array Rückgabe wert an andere Funktion ? Angular, React, JQuery - Fragen zu JavaScript 2
C Javascript problem links ohne funktion Angular, React, JQuery - Fragen zu JavaScript 12
C JavaScript Menü, Funktion hinzufügen Angular, React, JQuery - Fragen zu JavaScript 5
Aleyna_ Einbinden von js (ts) und HTML-Datei funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 16
leix "setInterval" funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 2
P Lauftext als Java Script Mehrmals auf einer Seite abspielen funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 3
P Sweetallert funktioniert nicht im Formular Angular, React, JQuery - Fragen zu JavaScript 0
A onmouseover funktioniert nicht recht Angular, React, JQuery - Fragen zu JavaScript 9
S jQuery - Slider funktioniert nicht im Akkordeon Angular, React, JQuery - Fragen zu JavaScript 3
K Wie funktioniert Funktionsüberladung in Javascript? Angular, React, JQuery - Fragen zu JavaScript 5
F Script funktioniert im IE aber nicht im Firefox Angular, React, JQuery - Fragen zu JavaScript 3
B Script funktioniert nach Firefox Update nicht mehr?? Angular, React, JQuery - Fragen zu JavaScript 2
G Java installiert, funktioniert aber nicht? Angular, React, JQuery - Fragen zu JavaScript 2
K Chat funktioniert nur unter FF. Warum? Angular, React, JQuery - Fragen zu JavaScript 7
U Function funktioniert nur einmal Angular, React, JQuery - Fragen zu JavaScript 2
M Programm nutzt Java und funktioniert nicht mehr! Angular, React, JQuery - Fragen zu JavaScript 1
M habe java code aber etwas funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 2
E Wieso funktioniert dieses Script bei mir nicht Angular, React, JQuery - Fragen zu JavaScript 2
G Weiterleitung funktioniert nicht richtig Angular, React, JQuery - Fragen zu JavaScript 4
M Warum funktioniert der Code nur einmal im Frame? Angular, React, JQuery - Fragen zu JavaScript 2
B Bannerrotation funktioniert nicht, wer kann helfen? Angular, React, JQuery - Fragen zu JavaScript 6

Ähnliche Java Themen

Neue Themen


Oben