php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.02.2011, 14:06  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard jquery children

Hallo leute,

ich suche eine selector möglichkeit in jQuery. es geht um folgendes:

PHP-Code:
$('.class div li').draggable();
$(
'.class div li').draggable();
$(
'.class div li').draggable();
$(
'.class div li').draggable(); 
diese funktion wird öffters aufgerufen, beim debuggen , ist mir aufgefallen dass der Code dann ziemlich oft in die jQUery datei springt.

PHP-Code:
var myDiv = $('.class');

myDiv.children('div').children('li').draggable();
myDiv.children('div').children('li').draggable();
myDiv.children('div').children('li').draggable();
myDiv.children('div').children('li').draggable(); 
optimiert das ganze ein wenig. aber gibt es eine Möglichkeit es noch mehr zu optmieren?

MFG
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.02.2011, 15:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

$('.class div li') erfasst eine Gruppe von Elementen. Eigentlich sollte das gar nicht mehrfach aufgerufen werden! Ich fürchte, Du wendest das Modul irgendwie falsch an.

Zitat:
Natürlich ist Mubarak reicher als Bill Gates. Microsoft hatte noch nie ein System, das 30 Jahre funktioniert hat.
Twitter?!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.02.2011, 15:36  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

naja ich habe ein click effekt auf jedes li, wenn ein dialog geöffnet wird, dann wird das event gestartet, beim closen eines dialogs unbinde ich das event. es wird nicht im ablauf die ganze zeit neu gestartet , sondern ledeglich bei bestimmten ereignissen.

und ja Twitter
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 15.02.2011, 16:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Dann solltest Du onClick verwenden und im Body this benutzen, um den draggable-Zustand zu setzen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.02.2011, 16:40  
Neuer Benutzer
 
Registriert seit: 21.01.2011
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
sebush befindet sich auf einem aufstrebenden Ast
Standard

also meiner meinung nach sollteste dir die each-methode von jQuery mal anschaun
Code:
$('.class div li').each(functione(i){ $(this).draggable(); });
__________________
www.Jena-Media.de Websolutions & Services
sebush ist offline   Mit Zitat antworten
Alt 15.02.2011, 16:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nö, wozu? draggable() kann eh mit Selektormengen arbeiten. each ist hier doppelt gemoppelt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.02.2011, 19:16  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Deine 2 Selector kannst du so gar nicht vergleichen:

$('.class div li').draggable();
=> finde jedes Listenelement, das unter einem div unter jedem Element mit der Klasse .class steckt.

$('.class').children('div').children('li')
=> finde nur die divs in der ersten Unterebene, suche dort nach allen Listenelementen.

Dein gesuchtes Pendant wäre eigentlich find() und nicht children().

Wenn du in den jquery source reinschaust (und da bleibt dir nicht viel anderes, wenn du wirklich die internals verstehen willst ), siehst du, das children einfach auf sibling mappt. Spätestens da fällt dir dann auf, dass deine Selectoren nicht vergleichbar sind.

Traversing per find ist im Vergleich zu dem ersten Selector deswegen schneller, weil du dir ein if gegen eine Regexp sparst und er (im Optimalfall) gleich getElementsByClassname verwenden kann. Inwieweit sizzle was wie wo macht, kann man sich meist relativ schnell erschließen, wenn du dir den unkomprimierten code ansiehst.

Das er immer wieder in die jquery source springt, liegt daran, dass jquery.Event sich um das komplette Eventhandling kümmert (sprich bind, delegate, etc müssen ja irgendwo bereitgestellt werden und werden so auch von ui.mouse und damit auch von ui.draggable verwendet). Ein richtig geiles addon für den firebug ist FireQuery, das zeigt dir die Events an, die an einem DOMNode gebunden sind.

grüße


Basti
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 15.02.2011, 20:00  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Ein richtig geiles addon für den firebug ist FireQuery, das zeigt dir die Events an, die an einem DOMNode gebunden sind.
Guter Tipp, das schau ich mir auch mal an.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 15.02.2011, 20:21  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Dein gesuchtes Pendant wäre eigentlich find() und nicht children().
Und wiedermal verweise ich auf:

PHP-Code:
$('.foo' this); 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 16.02.2011, 08:24  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Deine 2 Selector kannst du so gar nicht vergleichen:

$('.class div li').draggable();
=> finde jedes Listenelement, das unter einem div unter jedem Element mit der Klasse .class steckt.
ja also das was ich brauche ist, ein synonym dafür. Sprich ich möchte zum Anfang des Scripts alle meine Selektoren in variablen abspeichern , so dass objekte,erreignisse und eigenschaften , dann der variable zur verfügung stehen.

Und später im Code diese variablen ansprechen.

Es funktioniert alles soweit bei übergeordneten elementen. Aber manchmal hat man ja kind elemente die zur laufzeit generiert werden ohne klassennamen oder ohne IDs .

Ich habe das nun so umgesetzt aber ich finde es nicht schön:

PHP-Code:
var klass = $('.class');
var 
klasse_div_li = $('.class div li');

klass.dialog({
//nur ein beispiel 
open:function(){
loadList();
klasse_div_li.click(function(){
//mach irgendwas
});
}
}); 
ich fänd es schöner wenn man halt immer nur das mutterelement in eine variable speichert und die kindelemente dann mit funktionen belegen kann.
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einfaches JQuery resize und scoll läuft nicht smilla JavaScript, Ajax und mehr 5 08.02.2011 20:44
Zwei verschiedene jQuery Aktionen Electrofreak JavaScript, Ajax und mehr 3 14.01.2011 14:40
jQuery, einem DOM-Knoten eine Payload anhängen Chriz JavaScript, Ajax und mehr 6 22.12.2010 15:31
[Erledigt] jQuery Funktion auf dynamisch hinzugefügtes Div legen sdcleitung JavaScript, Ajax und mehr 15 15.11.2010 23:40
jQuery - Text an Cursorposition einfügen Koala JavaScript, Ajax und mehr 5 11.11.2010 21:28
jQuery (crossdomain) Ajax halskrause JavaScript, Ajax und mehr 10 01.09.2010 18:36
Bin noch ein Anfänger mit jquery bitte um hilfe bomber007 JavaScript, Ajax und mehr 4 19.08.2010 23:34
[Erledigt] jQuery Slider - In eine Richtung sperren Trainmaster JavaScript, Ajax und mehr 2 08.08.2010 16:06
[Erledigt] Statistik mit jQuery DJ_RhoxxZ JavaScript, Ajax und mehr 6 25.07.2010 17:47
jquery: dialogbox funktioniert nicht Dreamwatcher JavaScript, Ajax und mehr 16 22.07.2010 18:22
jQuery findet Element nicht ByStones JavaScript, Ajax und mehr 8 11.06.2010 14:03
jQuery Plug scroll to - wie einbetten? mxxxx JavaScript, Ajax und mehr 5 24.04.2010 18:12
[Erledigt] jQuery Dateien nachladen Phoscur JavaScript, Ajax und mehr 7 14.03.2009 13:44
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
For Schleife mit jQuery phpbeginner JavaScript, Ajax und mehr 3 22.11.2008 22:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery children, jquery alle unterelemente, jquery unterelement, jquery children anzeigen, jquery children ansprechen, .children jquery, .children jquery verstehen, alle unterelemente jquery, jquery children mit klasse, alle divs der unterebene selektieren jquery, alle div elemente der unterebene selektieren javascript, jquery unterelemente, jquery alle unterelemente einblenden, \'javascript .children, jquery alle unterelemente eines div, was macht children() php, jquery kindknoten selektoren ansprechen, jquery children ausgeben, jquerry alle children div, jquery text ohne unterelemente selektieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum