Inte släcka div1 genom att klicka på div2 som ligger ovanför div1

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • prplxr
    Medlem
    • 2012-06-16
    • 557

    #1

    Inte släcka div1 genom att klicka på div2 som ligger ovanför div1

    Hej, hallå igen!

    Har stött på patrull nu. Har en div med en div i. Den första diven är lika stor som skärmen och den andra diven ligger centrerad ovanför den första.

    När man klickar utanför div#2 skall div#1 (och således också div#2) försvinna, display: none;.

    Det fungerar utmärkt, så när som på att om man klickar i div#2 släcks de också, något jag verkligen inte vill. Kan man lösa detta på något bra sätt? Div#2 har högre z-index än div #1

    Code:
    +---------------------------------------+
    |                    Div#1              |
    |    +-----------------------------+    |
    |    |               Div#2         |    |
    |    +-----------------------------+    |
    |                                       |
    +---------------------------------------+
    Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.
  • voigtann1
    Forumvärd
    • 2001-06-14
    • 8810

    #2
    det är för att event triggas neråt, du få se tilll att om div#2 clickas så skall den inte gå längre ner med click eventet, eller så ser du om click eventets current.target inte är #1 om det är det så kör inte din animering. Är rätt enkelt med jQuery.
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Comment

    • nitro2k01
      Forumvärd
      • 2003-08-26
      • 7630

      #3
      http://api.jquery.com/event.stopPropagation/
      Gameboy Genius - Foto: Gatukonst och elektronikporr
      Internklippning:
      1) Snaggning av fångar.
      2) Klippning frisörer emellan.

      Comment

      • prplxr
        Medlem
        • 2012-06-16
        • 557

        #4
        Originally posted by nitro2k01
        Det där lät ju jättesmidigt, men jag kanske är sävlig som inte begriper varför
        Code:
        $("#sharer").click(function(event){
            event.stopPropagation();
        });
        inte fungerar. Är det här rätt approach?
        Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

        Comment

        • voigtann1
          Forumvärd
          • 2001-06-14
          • 8810

          #5
          Du få göra det på din kod som binder click eventet, nu verkar det som du binder två events på #sharer men det är bara en som kommer stoppa Propagation
          "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

          Comment

          • nitro2k01
            Forumvärd
            • 2003-08-26
            • 7630

            #6
            Ja precis, förutsatt att #sharer är div 2. Sen gäller det förstås att div 2 faktiskt ligger inuti div 1, och inte bara är ett absolut positionerat element som råkar liggar över div1. Events går neråt baserat på DOM-trädet (dvs HTML-strukturen) inte grafisk position.
            Gameboy Genius - Foto: Gatukonst och elektronikporr
            Internklippning:
            1) Snaggning av fångar.
            2) Klippning frisörer emellan.

            Comment

            • nitro2k01
              Forumvärd
              • 2003-08-26
              • 7630

              #7
              Jag gjorde en snabbt testsida för att kolla att allt funkar som tänkt, och det gör det i detta exempel.
              html:
              <html>
              <head>

              <script src="jquery-1.8.3.js"></script>
              <script>
              $(window).load(function(){
              $("#div1").click(function(event){
              alert("div 1");
              });

              $("#div2").click(function(){
              event.stopPropagation();
              alert("div 2");
              });

              });
              </script>

              </head>
              <body>
              <div id="div1">
              div 1
              <div id="div2">
              div 2
              </div>
              </div>
              </body>
              </html>
              Gameboy Genius - Foto: Gatukonst och elektronikporr
              Internklippning:
              1) Snaggning av fångar.
              2) Klippning frisörer emellan.

              Comment

              • prplxr
                Medlem
                • 2012-06-16
                • 557

                #8
                Originally posted by nitro2k01
                Jag gjorde en snabbt testsida för att kolla att allt funkar som tänkt, och det gör det i detta exempel.
                html:
                <html>
                <head>

                <script src="jquery-1.8.3.js"></script>
                <script>
                $(window).load(function(){
                $("#div1").click(function(event){
                alert("div 1");
                });

                $("#div2").click(function(){
                event.stopPropagation();
                alert("div 2");
                });

                });
                </script>

                </head>
                <body>
                <div id="div1">
                div 1
                <div id="div2">
                div 2
                </div>
                </div>
                </body>
                </html>
                Jahaaaaaaaaaaaa! Nu greppar jag hur det där fungerar! Tusen tack!
                Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

                Comment

                Working...