zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden jquery immer per click die Position erhöhen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.04.2012, 15:32
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Beiträge: 67
dr_colossos befindet sich auf einem aufstrebenden Ast
Standard jquery immer per click die Position erhöhen

Hallo, stehe wirklich vor einem eher trivialen Problem, bekomme es aber nicht gebacken ..

Ich habe eine Liste, die bei einem KLICK 80px in die Höhe geschoben wird:

HTML-Code:
jQuery("#down").click(function() {
    
    jQuery('#cont').each(function() {
        jQuery(this).css('top','-80px');

    });
});
#down ist mein PFEIL und der #cont wird nach oben verschoben.

Wie kann ich hier mit einem Zähler/Variable es so machen, dass bei jedem KLICk die 80 px hinzu kommen? Das mit der each()-Funktion bekomme ich nicht hin.


Bin für jede Hilfe oder Wink dankbar.

Gruß

Geändert von dr_colossos (19.04.2012 um 16:11 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.04.2012, 16:11
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Selector.each() iteriert über eine Gruppe von Elementen. In einem validen HTML-Element findet der ID-Selektor aber maximal ein Element. Von daher ist Selector.each hier fehl am Platze.

Beim Klick einfach: aktuellen Wert auslesen, (ggf. in einen Integer überführen), 80 dazuzählen, neuen Wert mit der Einheit 'px' setzen.
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.04.2012, 16:25
Benutzerbild von Chris2011
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.01.2011
Beiträge: 301
Chris2011 befindet sich auf einem aufstrebenden Ast
Standard

So ungefähr
Code:
<!DOCTYPE html>
<html>
<head>
  <style>
  #test { width:80px; height:80px; border:1px solid red; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  
  <div id="test"></div>
  
<script>
    $("#test").click(function () {
       muh = $(this).css("margin-top").replace("px", "");//aktueler wert
       $(this).css("margin-top", parseFloat(muh) +80+"px")//string in einen integer umwandeln und +80
    });
</script>

</body>
</html>
Mit Zitat antworten
  #4 (permalink)  
Alt 19.04.2012, 16:38
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Wenn Du es schon in eine Globale schreibst, dann musst Du es nicht jedesmal wieder auslesen
__________________
github | http://dnaber.de
Mit Zitat antworten
  #5 (permalink)  
Alt 19.04.2012, 16:51
Neuer Benutzer
neuer user
 
Registriert seit: 23.10.2008
Beiträge: 11
Frederick befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

"etwas" eleganter und einfacher geht's so:

<!DOCTYPE html>
<html>
<head>
<style>
#test, #test2 { width:80px; height:80px; border:1px solid red; float:left;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<div id="test">#test</div>
<div id="test2">#test2</div>

<script>
$("#test").click(function () {
muh = $(this).css("margin-top").replace("px", "");//aktueler wert
$(this).css("margin-top", parseFloat(muh) +80+"px")//string in einen integer umwandeln und +80
});
$("#test2").click(function () {
$(this).css("margin-top", "+=80px");
});
</script>

</body>
</html>


Gruß,
Frederick
Mit Zitat antworten
  #6 (permalink)  
Alt 19.04.2012, 16:56
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Beiträge: 67
dr_colossos befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank an euch beide. So habe ich es dank eurer Hilfe umgesetzt:
HTML-Code:
jQuery('#down').click(function() {
	var pos = jQuery('#cont').css("top").replace("px", "");
	jQuery('#cont').css("top", parseFloat(pos) + -80 +"px");
});

jQuery('#up').click(function() {
	var pos = jQuery('#cont').css("top").replace("px", "");
	jQuery('#cont').css("top", parseFloat(pos) + 80 +"px");
});
Dass man beim letzten, erreichten <li> meiner Liste anhält gibt wohl der nächste Thread .. hehe. Aber ich kämpfe mich erst mal so durch.

Danke.
Mit Zitat antworten
  #7 (permalink)  
Alt 19.04.2012, 18:10
Neuer Benutzer
neuer user
 
Registriert seit: 23.10.2008
Beiträge: 11
Frederick befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

nein, mach's nicht so. Das ist doch hässlich. Was spricht gegen "+=80px" bzw. "-=80px". Da brauchst Du nicht extra den aktuellen Wert ausreichnen... schau mal in meinem ersten Posten ab "$('#test2').click(function...". Ist doch viel kürzer und hypscher.


Gruß,
Freddy
Mit Zitat antworten
  #8 (permalink)  
Alt 22.04.2012, 11:01
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

jquery hat eine gute Doumentation und da findet sich auch das: .position() – jQuery API
Mit Zitat antworten
Antwort

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 are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Div-Anordnung unterschiedlich - Warum? AndMei CSS 2 15.12.2010 21:22
div-höhe? - Hauptcontainer über ganze Seite will nicht... AndMei CSS 5 13.12.2010 14:43
Problem mit einem 3D-Effekt moep0710 CSS 12 12.06.2010 14:30
Was übersehe ich? Psyclown CSS 2 19.10.2008 13:00
prblemme mit mein inhalt div carlos587261 CSS 3 23.04.2008 14:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:41 Uhr.