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 02.03.2011, 09:18  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard DOM neu laden !? jQuery mit neuen "Elementen"

Guten Morgen

Es geht um:
Per Ajax hole bastel ich mir ein neues Seitenelement zusammen, welches einen Button enthält.
Dieser Button lässt das neu erstellte Element verschwinden.

Wenn ich die Seite neu lade klappt der Button auch, wenn ich ihn allerdings ausführen möchte nachdem ich ihn geaddet habe funktioniert er noch nicht.


Der Grund ist, dass die hide() Funktion nur funktioniert, sofern dieser aus dem DOM abgearbeitet wurde.

Da das DOM aber vor der Erstellung des neuen Elements geladen wurde, funktioniert dieses natürlich (noch) nicht (außer mit einem Seiten reload).



Was ich komisch fand war, dass mir google per "DOM neu laden jquery" keine wirklich guten Ergebnisse ausgab.

Was ich fand war das man Seiteninhalte laden kann... aber nicht wie ich die Funktionsfähigkeit eines neuen Elementes sicherstellen kann OHNE die >komplette< Seite neuladen zu müssen.

Weiß hier jemand wie dies funktioniert ?


Vielen Dank im voraus,

Dreamcatcher
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.03.2011, 10:40  
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

Hallo,
zeig doch mal einen Codeschnipsel. Das hier ist mir auch noch nicht so ganz klar:
Zitat:
Der Grund ist, dass die hide() Funktion nur funktioniert, sofern dieser aus dem DOM abgearbeitet wurde.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 02.03.2011, 11:03  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Hallo,
zeig doch mal einen Codeschnipsel. Das hier ist mir auch noch nicht so ganz klar:
Aber gerne doch
PHP-Code:
vorher.html
<div>
</
div>

nachher.html
<div>

<
div class="xy">
<
p><class="hide">Hide Table</a></p>
<
table><tbody>[...]</tbody></table>
</
div>

</
div>

js.js
$(document).ready(function() {
  $(
".hide").click(function(){
    $(
this).parent('p').next('table').hide();
  }
}); 
Und die js.js funktioniert ebend nur, wenn ich die Seite neu lade (und somit die js.js neu geladen wird).

Direkt nach der "Erstellung" (Mit $.post hole ich mir den Inhalt und gebe diesen auf vorher.html aus so dass nachher.html daraus wird) funktioniert der hide Button jedoch nicht.

Daher hatte ich überlegt die js.js irgendwie neu lesen zu lassen...

Geändert von dreamcatcher (02.03.2011 um 11:20 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 02.03.2011, 11:21  
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

Hast du dir die FAQ mal angesehen bzw. durchgearbeitet?

Das sind wirklich Grundlagen, bitte geb dir mehr Mühe / bring mehr Eigeninitiative mit.


grüße


Basti
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 02.03.2011, 12:54  
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

Du möchtest doch - wenn ich dich richtig verstanden habe - eine Funktionalität einmal ausführen, wenn das Dokument geladen wurde und einmal, wenn du das Element dynamisch erzeugst hast. Das schreit doch nach einer Funktion!

Code:
js.js:

setzeKlickEvent = function() {
  $(".hide").bind("click", (function(){
    $(this).parent('p').next('table').hide();
  });
}

$(document).ready(function() {
  setzeKlickEvent();
});

// nach dem AJAX
setzeKlickEvent();
Evtl. unbind() vorher, bin nicht sicher ob du sonst mehrfach das onclick setzt.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 02.03.2011, 13:59  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://api.jquery.com/live/
Zitat:
Attach a handler to the event for all elements which match the current selector, now and in the future.
http://api.jquery.com/delegate/
Zitat:
Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.
Wie der Dokumentation zu entnehmen, klemmt sich live() an das höchste Element im DOM Tree, während man bei delegate() selber entscheiden kann an welchem Element gelauscht wird.
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 03.03.2011, 18:44  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
FAQ
grüße


Basti
Danke danke danke, das ist super

Zitat:
Zitat von phpdummi Beitrag anzeigen
http://api.jquery.com/live/


http://api.jquery.com/delegate/


Wie der Dokumentation zu entnehmen, klemmt sich live() an das höchste Element im DOM Tree, während man bei delegate() selber entscheiden kann an welchem Element gelauscht wird.
Genau das wars.

Mit live() hab ichs super hinbekommen.


@Chriz
Danke.

Geändert von dreamcatcher (03.03.2011 um 18:48 Uhr).
dreamcatcher 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
jQuery und blättern von content jackie1983 JavaScript, Ajax und mehr 10 24.02.2011 22:30
Eingebundenes Plugin nach DOM Erstellung laden dreamcatcher JavaScript, Ajax und mehr 1 24.02.2011 08:39
JQUERY: 5 Bilder anzeigen, dann ausblenden und dann die nächsten laden? sturmi JavaScript, Ajax und mehr 5 30.01.2011 19:24
nur ausgewählten div Container neu laden - jQuery .load() - Hilfe falby02 JavaScript, Ajax und mehr 2 11.11.2010 20:16
Bin noch ein Anfänger mit jquery bitte um hilfe bomber007 JavaScript, Ajax und mehr 4 19.08.2010 23:34
[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
neuen Datensatz in der gleichen Seite laden saki81 PHP Tipps 2010 5 17.04.2010 17:53
[Erledigt] Popup soll parent mit einer neuen Adresse laden ***tisc*** HTML, Usability und Barrierefreiheit 4 27.05.2009 18:02
[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
Forum selber machen - Problem mit neuen Beiträgen PHP Tipps 2006 2 01.04.2006 20:52
Frame schließen und DOM neu laden !? jQuery mit neuen "Elementen" workaholic HTML, Usability und Barrierefreiheit 2 06.09.2005 13:36
Bestimmte Dateien am Anfang der Seite laden HTML, Usability und Barrierefreiheit 8 10.07.2005 22:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax dom neu verarbeiten, jquery dom neu laden, jquery dom neu einlesen, jquery reload dom, jquery dom reload, jquery refresh dom, jquery neu laden, jquery dom refresh, jquery element neu laden, dom neu laden, dom neu laden jquery, jquery seite aktualisieren, jquery nachladen, jquery seite neu laden, refresh dom jquery, dom tree erneut laden, javascript dom neu einlesen, jquery dom, jquery ajax neu aufrufen, jquery dom nachladen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:28 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