Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Variablen in jQuery

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Variablen in jQuery

Beitragvon Sempervivum am 25.01.2012, 17:44

Hallo,
ich habe gerade begonnen, mich anhand von zwei Tutorials in jQuery einzuarbeiten und habe dabei dieses Übungsprogramm geschrieben:
Code: Alles auswählen
<html>
  <head>
    <script type="text/javascript" src="jquery-1.7.js"></script>
    <script type="text/javascript">
    var ein;
      jQuery.fn.pulsieren = function(){
        if (ein ) $(this).delay(500)
                  .fadeOut("slow")
                  .fadeIn("slow", function () {$(this).pulsieren()});
        };
      $(document).ready(function(){
           $("a").mouseover(function(){
               $(this).test = "test";
             ein = true;
             $(this).pulsieren();
             return false;
             });
           $("a").mouseout(function(){
               alert ($(this).test);
             ein = false;
             return false;
             });
            return false;
           });
    </script>
  </head>
  <body>
    <a href="http://jquery.com/">jQuery</a>

  </body>
  </html>
Ein Linktext beginnt zu pulsieren, wenn man mit der Maus drübergeht. Funktioniert soweit, nur die globale Variable ist unschön. So ist es nicht möglich, das Skript für mehrere Objekte zu verwenden. Wie kann man die Variable objektorientiert an das zu animierende Objekt binden? So wie ich es mit der Variable test versucht habe, funktioniert es leider nicht.
Vielen Dank für nützliche Hinweise und viele Grüße - Ulrich
Sempervivum
Mitglied
 
Beiträge: 13
Registriert: 08.01.2012, 18:00
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Variablen in jQuery

Beitragvon Ingo am 26.01.2012, 01:53

Hi.

Man könnte das per .data(...) erreichen, d.h. der Blink-Status des a-Elements wird im zugehörigen
DOM-Element gespeichert. Dann kann man beliebig viele Links im Dokument haben, die alle unabhängig
voneinander blinken können, denn jedes Element verwaltet seinen eigenen Status:

Code: Alles auswählen
  jQuery.fn.pulsieren = function(){
    if ($(this).data("ein") == 'true' )
      $(this).delay(500)
             .fadeOut("slow")
             .fadeIn("slow", function () {$(this).pulsieren()});
  };

  $(document).ready(function(){

    $("a")
    .data('ein', false)
    .mouseover(function(){
      $(this).data("ein", true);
      $(this).pulsieren();
      return false;
    })
    .mouseout(function(){
      $(this).data("ein", false);
      return false;
    });

    return false;
  });

HTML:
        <a href="http://jquery.com/">jQuery</a>
        <a href="http://jquery.com/">jQuery</a>
        <a href="http://jquery.com/">jQuery</a>
        ...

Gruß, Ingo :)
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Wer glaubt etwas zu sein, hat aufgehört etwas zu werden.
Benutzeravatar
Ingo
Web Moderator
 
Beiträge: 1722
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Variablen in jQuery

Beitragvon Sempervivum am 26.01.2012, 18:35

Hallo Ingo,
super, das ist genau, was mir fehlte! Vielen Dank für den Hinweis.
Sempervivum
Mitglied
 
Beiträge: 13
Registriert: 08.01.2012, 18:00


Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste