Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-10-2011, 09:29   #1 (permalink)
I'M A CYBORG
 
Registriert seit: Apr 2007
Ort: ---------
Beiträge: 372
if bedingung nur einmal erfogreich

hallo
ich habe probleme bei einem menu
bei darüber soll die schrift grösserwerden funktioniert
bei mouseleaf wieder zurück funktioniert
bei click soll der betreffende menüpunkt nicht mehr auf mouseleaf reagieren
und der zuerst geclickte menüpunkt die veränderung zurück nehmen funktioniert auch.
nur will ich das ein bereits geckliter button nicht mehr darauf reagiert
daher habe ich eine if bedingung eingefügt die das verhindern müsste tut
es aber nicht.
weis jmd wos hackt ?
PHP-Code:
// JavaScript Document


$(document).ready(function(){


var 
obj = $('.dmy'); 

$(
'.link').bind("mouseenter",    function(){  $(this).animate({fontSize:'20'},200);     });
                                                            
                                                           
$(
'.link').bind("mouseleave",    function(){   $(this).animate({fontSize:'11'},200);    });

$(
'.link').bind("click",    function(){
                                        if(
obj != $(this)){    // warum greift diese abfrage nur 1x   ???????    
                                                        
                                        
obj.animate({fontSize:'11'},200); 
                                        
obj.bind("mouseleave", function(){ $(this).animate({fontSize:'11'},200); });
                                        $(
this).unbind("mouseleave");
                                          
obj = $(this);    
                                     }
                                            
                                        
                                      

                              });
                 



});
/////////////////////////////////////////// ready ende////////////////////////////////////////// 
mfg
speedhost ist offline   Mit Zitat antworten
Alt 25-10-2011, 09:49   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Weil du obj überschreibst.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-10-2011, 10:54   #3 (permalink)
I'M A CYBORG
 
Registriert seit: Apr 2007
Ort: ---------
Beiträge: 372
danke für den tipp
das überschreiben ist aber absicht.
denn obj soll ja den node zwischenspeichern
bis ein neuer menüpunkt geclickt wird damit
der gspeicherte dann in seinen defaultzustand zurück gesetzt wird
das funkt auch so.
nur die bedingung obj != $(this) wird immer erfüllt.
obwohl ich am ende der function $(this) an obj übergebe das heisst
ab diesem zeitpunkt ist obj == $(this) also dürfte die anweisungen kein 2.mal
auf den selben menüpunkt ausgeführt werden.

hab nun schon mit stopPropagation() und dergl. versucht aber hilft nix.
vieleicht hab ich aber einen knoten im kopf der nicht aufgehen will versuche
mich mal auf deinen tip zu konzentrieren.

mfg
speedhost ist offline   Mit Zitat antworten
Alt 25-10-2011, 11:06   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Versuch's mal so:
PHP-Code:
$(document).ready(function() {
    
    var 
obj = $('.dmy'); 
    
    $(
'.link').mouseenter( function() {
        $(
this).animate( { fontSize:'20' }, 200);
    });
    
    $(
'.link').mouseleave( function(){   
        if(
obj != $(this)) $(this).animate( { fontSize:'11' }, 200);
    });
    
    $(
'.link').click( function(){
        if (
obj == $(this)) return;

        
obj.animate({fontSize:'11'}, 200);
        
obj = $(this);
    });
    
}); 
Falls das nicht funktioniert, solltest Du kontrollieren ob Du irgendwo die Variable obj überschreibst:
PHP-Code:
console.log(obj+" == "+$(this)+" = "+(obj == $(this))); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (25-10-2011 um 11:10 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 25-10-2011, 11:18   #5 (permalink)
I'M A CYBORG
 
Registriert seit: Apr 2007
Ort: ---------
Beiträge: 372
leider das selbe ergebnis aber danke für die hilfe.
ich wusste gar nicht das ich auf bind verzichten kann.

es sieht so aus als ob die bedingung inerhalb des handlers nicht erkannt wird.
werde ma lalles r wie von die geraten mit console.log überprüfen.

mfg
speedhost ist offline   Mit Zitat antworten
Alt 25-10-2011, 12:50   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>


<style type="text/css">

	#mytinylist{
		font-size: 20px;
		color: red;
		font-family: Arial;
		padding: 10px;
		list-style-type: none;
	}


</style>

<script type="text/javascript">

	var normal = { fontSize: 20 };
	var bigger = { fontSize: 48 };
	var index = -1;

	$(document).ready( function(){

	
		$('#mytinylist li').hover( 

			function(){

				 if( $(this).index() != index ){ $(this).animate( bigger, 200 ) };

			},

			function(){

				if( $(this).index() != index ){ $(this).animate( normal, 200 ) };

			}
		);

		$('#mytinylist li').click( function(){

			$('#mytinylist li').not(this).animate( normal, 200 ); //All smaller but this
			index = $(this).index();

		});


	});

</script>


</heady>
<body>

<ul id="mytinylist" class="link">

	<li>

		Test

	</li>
	<li>

		Test2

	</li>
	<li>

		Test3

	</li>
	<li>

		Test4

	</li>
</ul>


</body>
</html>
Gruss, Nighty

Werden Funktionen über bind, live etc. hinzugefügt und wieder entfernt macht dies meistens Probleme mit JQuery da es ab und zu funktioniert sich dann aber plötzlich aufhängt weil irgendwie intern ein Chaos entsteht. Obiger Code pausiert die Animation über deren Index, was tadellos läuft
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (25-10-2011 um 12:52 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 25-10-2011, 21:41   #7 (permalink)
I'M A CYBORG
 
Registriert seit: Apr 2007
Ort: ---------
Beiträge: 372
vielen dank für das bspl.
klappt genau so wie ich es gerne haben wollte.

mfg
speedhost ist offline   Mit Zitat antworten
Alt 26-10-2011, 09:31   #8 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Stehts zu Diensten
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Auf einmal werden alle Sounds auf einmal abgespielt simsalla Flash CS4 Professional 1 31-03-2011 08:44
[Flash CS4] XML-Daten einmal mit Tag einmal ohne - weshalb? sejau Flash Einsteiger 7 08-07-2009 14:18
Funktion aus anderer Klasse aufrufen: einmal funktionerts, einmal nicht andiwand ActionScript 2 3 10-06-2007 13:10
array - einmal gehts einmal nicht.... destroy90210 ActionScript 1 4 27-08-2004 08:54
Flash Player 6 /7 einmal funtz es einmal net Flegma88 ActionScript 1 6 12-07-2004 23:59


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele