hilflos: toggle

Hallo Leser,
ich habe folgendes script geschrieben.

externe javafunction in system.js
*

  
function is_user(flag){  
if(user_id){  
container = document.getElementById('kein_user');  
container.style.position = "absolute";  
container.style.left = (width-480)/2+"px";  
container.style.top = 200+"px";  
container.style.display = (container.style.display=='block'?'none':'block');  
return false;  
}  
else{  
return true;  
}  
}  

im headbereich

  
<script language="javascript">  
var user_id = "<?PHP if(!defined('USER_ID')){echo 'false';}else {echo 'true';}?>";  
</script>  

*
in der index.php

  
<table id="kein_user" style="display:none" width=480 class=info></tr><td>  
<table width=450 align=center><tr>  
<td height=50 valign=middle>  
<b>Systeminformation:&nbsp;Hinweis</b><hr>  
</td>  
</tr>  
<tr>  
<td align=center>  
Diese Funktion steht Ihnen nicht zu Verfügung.</p><img src="favicon.ico" width=12>  
</td>  
</tr>  
<tr>  
<td><hr></td>  
</tr>  
<tr>  
<td height=40 align=center valign=middle>  
<button  onclick="is_user('0')">schliessen</button></td><td>  
</td></tr></table>  
</td></tr></table>  
<a href='post/index.php' onclick="return is_user('1')">Post</a>  

nun will ich ein settimeout setzen.
er drückt nicht den Button <schliessen> dann in 5sek display='none'
er drückt den Button dann cleartimeout und display='none'

für eine tip bzw. script währe ich dankbar.

hilflos

  1. Om nah hoo pez nyeetz, hilflos!

    Dein HTML ist stark verbesserungswürdig
     * Verwende keine Tabellen zum Layouten
     * Verwende keine darstellungsbezogenen attribute wie z.B. align
     * Was soll die horizontale Linie in einer Tabellenzeile
     * Du schließt einen Absatz der nicht geöffnet ist
     * Verwende keine geschachtelten Tabellen zum Layouten
     * Verwende weder inline-styles noch inline-handler

    Hilfe für HTML gibts im SELFHTML-Wiki, für Javascript bei Molily.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Hallo,

      Irgendwie hast du es geschafft über alles zu sprechen außer über sein konkretes problem. Faszinierend.

      Jeena

      1. @@Jeena Paradies:

        nuqneH

        Irgendwie hast du es geschafft über alles zu sprechen außer über sein konkretes problem. Faszinierend.

        Wie viele Forumsteilnehmer braucht es, um eine Frage nicht zu beantworten?

        Zehn. Einer, der ergänzende Hinweise gibt, und neun, die sich darüber aufregen.

        Was spricht gegen ergänzende Hinweise? IMHO nichts. Das war schon immer ein Qualitätsmerkmal dieses Forums und das soll auch so bleiben.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Hallo,

          Was spricht gegen ergänzende Hinweise?

          Nichts. Aber wie der Name schon sagt würde man erwarten dass sie ergänzend sind. Mathias' Hinweise haben aber nichts ergänzt.

          Jeena

          1. Was spricht gegen ergänzende Hinweise?
            Nichts. Aber wie der Name schon sagt würde man erwarten dass sie ergänzend sind. Mathias' Hinweise haben aber nichts ergänzt.

            Die Nachricht zeigt zumindest deutlich, dass der vorgelegt Code mangels Struktur und Ordnung einfach so unübersichtlich, dass es einfacher ist, ihn neu zu Schreiben als den Fehler zu suchen bzw. ihn zu erweitern.

            1. Hallo,

              Die Nachricht zeigt zumindest deutlich, dass der vorgelegt Code mangels Struktur und Ordnung einfach so unübersichtlich, dass es einfacher ist, ihn neu zu Schreiben als den Fehler zu suchen bzw. ihn zu erweitern.

              Und das hilft einem der unerfahren ist und nicht mehr weiter weiß wie?

              Jeena

              1. Und das hilft einem der unerfahren ist und nicht mehr weiter weiß wie?

                Nur das allein nicht, beispiele und Lösungsvorschläge wären schon angebracht gewesen.

                1. Hallo,

                  Nur das allein nicht, beispiele und Lösungsvorschläge wären schon angebracht gewesen.

                  Jeena

                  1. Hallo,

                    Nur das allein nicht, beispiele und Lösungsvorschläge wären schon angebracht gewesen.

                    Jeena

                    Hallo jeena,
                    durch deinen Tip habe ich es so gemacht

                    in der system.js

                      
                    var toggle= " ";  
                    function is_user(){  
                    if(user_id){  
                    if (display == 'none'){	  
                    container = document.getElementById('kein_user');  
                    container.style.position = "absolute";  
                    container.style.left = (width-480)/2+"px";  
                    container.style.top = 200+"px";  
                    container.style.display = 'block';  
                    toggle = window.setTimeout("hideNoUser()",5000)  
                    }  
                    return false  
                    }  
                    else{  
                    return true  
                    }  
                    }  
                    function hideNoUser() {  
                    clearTimeout(toggle);  
                    document.getElementById("kein_user").style.display = "none";  
                    toggle=" ";  
                    return false  
                    }  
                    
                    

                    in der index.php

                      
                    <img src='images/ab_x.png'><br>  
                    <a href='post/index.php' onclick="return is_user()" onmouseover="post.src='../images/post_a.png'" onmouseout="post.src='../images/post_b.png'"><img src='../images/post_b.png' name='post'></a><br>  
                    
                    

                    und es läuft super
                    ich finde keine optimierung des Codes mehr

                    nochmals danke

                    hilflos

                    1. ich finde keine optimierung des Codes mehr

                      Einrücken würde die Lesbarkeit z.B. enorm erhöhen :)

                      1. Einrücken würde die Lesbarkeit z.B. enorm erhöhen :)

                        Irgendwie schon ;-)

                        var toggle = " ";  
                          
                        function is_user() {  
                            if (user_id) {  
                                if (display == 'none') {  
                                    container = document.getElementById('kein_user');  
                                    container.style.position = "absolute";  
                                    container.style.left = (width - 480) / 2 + "px";  
                                    container.style.top = 200 + "px";  
                                    container.style.display = 'block';  
                                    toggle = window.setTimeout("hideNoUser()", 5000)  
                                }  
                                return false  
                            } else {  
                                return true  
                            }  
                        }  
                          
                        function hideNoUser() {  
                            clearTimeout(toggle);  
                            document.getElementById("kein_user").style.display = "none";  
                            toggle = " ";  
                            return false  
                        }
                        

                        http://jsbeautifier.org/

                    2. Hi,

                      var toggle= " ";
                      function is_user(){
                      if(user_id){
                      if (display == 'none'){
                      container = document.getElementById('kein_user');
                      container.style.position = "absolute";
                      container.style.left = (width-480)/2+"px";
                      container.style.top = 200+"px";
                      container.style.display = 'block';
                      toggle = window.setTimeout("hideNoUser()",5000)
                      }
                      return false
                      }
                      else{
                      return true
                      }

                      
                      > ich finde keine optimierung des Codes mehr  
                        
                      Ich schon:  
                      Das else um das return true ist überflüssig - aus dem if-Zweig kommt man wegen des return false nicht in den nachfolgenden Code.  
                        
                      cu,  
                      Andreas
                      
                      -- 
                      [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
                      [O o ostern ...](http://ostereier.andreas-waechter.de/)  
                        
                      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.  
                      
                      
                      1. Hi,

                        var toggle= " ";
                        function is_user(){
                        if(user_id){

                        [...]

                        return false
                        }
                        else{
                        return true
                        }

                        
                        > > ich finde keine optimierung des Codes mehr  
                        >   
                        > Ich schon:  
                        > Das else um das return true ist überflüssig - aus dem if-Zweig kommt man wegen des return false nicht in den nachfolgenden Code.  
                        >   
                        > cu,  
                        > Andreas  
                          
                        na, falls aus irgendeinem Grund user\_id flase sein sollte, wird true zurückgegeben. Ob das sinnvoll ist?  
                          
                        Gruß  
                        Kalk
                        
          2. @@Jeena Paradies:

            nuqneH

            Mathias' Hinweise haben aber nichts ergänzt.

            Doch. Nämlich deine Antwort.

            Man kann von einem Antworten vielleich erwünschen, keinesfalls aber verlangen, auf alle Aspekte einzugehen.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. [latex]Mae  govannen![/latex]

              Mathias' Hinweise haben aber nichts ergänzt.

              Doch. Nämlich deine Antwort.

              Darf ich auch mal ne Runde mit der Zeitmaschine drehen?

              Stur lächeln und winken, Männer!
              Kai

              --
              It all began when I went on a tour, hoping to find some furniture
               Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
              SelfHTML-Forum-Stylesheet
              1. @@Kai345:

                nuqneH

                Darf ich auch mal ne Runde mit der Zeitmaschine drehen?

                Du hängst dem Irrglauben an, die ergänzende Hinweise dürften erst nach der Beantwortung der Frage kommen?

                Natürlich müssen sie sofort kommen, sonst besteht die Gefahr, dass der Fragesteller sie gar nicht wahrnimmt.

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
                1. Hallo,

                  Du hängst dem Irrglauben an, die ergänzende Hinweise dürften erst nach der Beantwortung der Frage kommen?
                  Natürlich müssen sie sofort kommen, sonst besteht die Gefahr, dass der Fragesteller sie gar nicht wahrnimmt.

                  Hehe das finde ich wiederum einen Irrglauben, das wäre so als ob mich ein Katholik fragen würde ob ich ihm die Evolution erklären könnte und ich sagen würde, erst mal müssen wir daran arbeiten dass du deinen irrsinnigen Glauben an einen unsichtbaren bärtigen Mann in den Wolken ablegst.

                  Jeena

                2. [latex]Mae  govannen![/latex]

                  Darf ich auch mal ne Runde mit der Zeitmaschine drehen?

                  Du hängst dem Irrglauben an, die ergänzende Hinweise dürften erst nach der Beantwortung der Frage kommen?

                  Das weiß ich sogar. Denn wäre es nicht so, wären diese Hinweise nicht _ergänzend_.

                  Stur lächeln und winken, Männer!
                  Kai

                  --
                  It all began when I went on a tour, hoping to find some furniture
                   Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
                  SelfHTML-Forum-Stylesheet
            2. Hallo,

              Doch. Nämlich deine Antwort.

              Leider kam meine Antwort erst 2 Stunden später als die von Matthias, deshalb kan sie keine Ergänzung zu meiner gewesen sein, außer er ist mit Marty Mc Fly erst in der Zeit zwei Stunden rückwärts und dann wieder zurück in die Zukunft geflogen ;)

              Jeena

        2. Irgendwie hast du es geschafft über alles zu sprechen außer über sein konkretes problem. Faszinierend.

          Wie viele Forumsteilnehmer braucht es, um eine Frage nicht zu beantworten?

          Zehn. Einer, der ergänzende Hinweise gibt, und neun, die sich darüber aufregen.

          Also ich bin der erste, der sich darüber aufregt, dass du deine Frage gleich selber beantwortest.

          Was spricht gegen ergänzende Hinweise? IMHO nichts. Das war schon immer ein Qualitätsmerkmal dieses Forums und das soll auch so bleiben.

          Und das war jetzt dein ergänzender Hinweis.

          mfg Beat

          --
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
    2. Hi there,

      Dein HTML ist stark verbesserungswürdig
      * Verwende keine Tabellen zum Layouten
      * Verwende keine darstellungsbezogenen attribute wie z.B. align
      * Was soll die horizontale Linie in einer Tabellenzeile
      * Du schließt einen Absatz der nicht geöffnet ist
      * Verwende keine geschachtelten Tabellen zum Layouten
      * Verwende weder inline-styles noch inline-handler

      Fein, Dein Sendungsbewusstsein bist losgeworden. Und was hat das mit seinem Problem zu tun?
      (Immerhin gibt es hier einen, der noch verrückter ist als Du, der hat Dein HTML-Geschwurble zu einer Javascript-Frage auch noch als fachlich hilfreich bewertet...)

    3. Om nah hoo pez nyeetz, hilflos!

      Dein HTML ist stark verbesserungswürdig
      * Verwende keine Tabellen zum Layouten
      * Verwende keine darstellungsbezogenen attribute wie z.B. align
      * Was soll die horizontale Linie in einer Tabellenzeile
      * Du schließt einen Absatz der nicht geöffnet ist
      * Verwende keine geschachtelten Tabellen zum Layouten
      * Verwende weder inline-styles noch inline-handler

      Hilfe für HTML gibts im SELFHTML-Wiki, für Javascript bei Molily.

      Matthias

      Hallo,
      ich weis das man solche Sachen mit CSS machen soll.
      Manche programmabschnitte und funktionen laufen schon CSS
      Mache Sachen fallen erst nach einiger Zeit auf, wenn mann
      darüber schaut ob und wie es besser geht.

      Für die Hinweise ein Danke

      hilflos

  2. Hallo,

    Ich bin nicht ganz sicher was du konkret machen willst aber hier mal ein code Beispiel wie man setTimeout und clearTimeout benutzt:

    var noUserTimeout = setTimeout(hideNoUser, 5000);

    function hideNoUser() {  
        clearTimeout(noUserTimeout);  
        document.getElementById("kein_user").style.display = "none";  
    }
    

    <button onclick="hideNoUser()">Schließen</button>

    Jeena

    1. hallo

      Ich bin nicht ganz sicher was du konkret machen willst aber hier mal ein code Beispiel wie man setTimeout und clearTimeout benutzt:

      var noUserTimeout = setTimeout(hideNoUser, 5000);

      function hideNoUser() {

      clearTimeout(noUserTimeout);
          document.getElementById("kein_user").style.display = "none";
      }

      
      >   
      > `<button onclick="hideNoUser()">Schließen</button>`{:.language-html}  
      >   
      >    Jeena  
      > ![](http://jeenaparadies.net/pavatar.png)  
        
        
      Jeena,  
      Deine Anregung werde ich im laufe des Tages einbauen.  
        
      da ich nicht "Programmierer" bin und erst meine erste Gehversuche mache  
      (intranet) ist wahrscheinlich die programmierung konfus und nicht optimal.  
        
      Diese Struktur  
      
      >>>  
      
       es soll eine buttonreihe erstellt werden  
       so sieht ein button aus  
        
      `function li_menu(){ ?>`{:.language-php}  
      ~~~html
        
      <img src='images/ab_x.png'><br>  
      <a href='post/index.php' onclick="return is_user()" onmouseover="post.src='../images/post_a.png'" onmouseout="post.src='../images/post_b.png'"/>  
      <img src='../images/post_b.png' name='post'></a><br>  
      
      

      *
      noch ein paar buttons teilweise mit onclick="return is_user()"
      *
      *

      <?PHP }  
      *  
      function re_menu(){?>  
      ......  
      ......  
      
      ~~~]  
      <<<<  
        
      wird laufen angewandt, andere symbole und link´s  
      auf der aufgerufenen Seite wurde immer mittels PHP geprüft ob er  
      berechtigt ist. das popup wollte ich nicht mehr.  
      Also sollte ich das System umgestalten und wie ich das dachte.  
        
        
        
      danke  
      hilflos