JavaScript JQuery auf geladenen Inhalt

Aradiv

Well-known member
ID: 217591
L
20 April 2006
1.683
176
Ich lade mit load bzw. append Daten in ein Div und möchte nun nach dem Laden die jquery Funktionen auch auf den Inhalt anwenden können.

Das ist der Code den ich momentan benutze
Code:
$(document).ready(function(){
    $("a").click(function(){
    $("#content").empty();
    $("#content").load("test.php");
  });
}

beim Aufruf eines Links auf der Hauptseite funktioniert alles. Aber wenn ich einen Link der in test.php steht aufrufe funktioniert es nichtmehr.

jemand eine Idee wie ich das lösen kann?

mfg
Aradiv
 
.live() ist die Lösung, da somit deine Funktion auch an zukünftige Elemente gebunden wird ;)

Code:
$(function(){
  $("a").live('click',function(){
      $("#content").empty().load("test.php");
  });
});
 
Zuletzt bearbeitet:
Die .live()-Eventhandler können im Übrigen auch ausserhalb des "document ready"-Handlers definiert werden. Bringt bei kleineren Seiten nicht viel, aber bei größeren Seiten dürfte sich der Unterschied schon bemerkbar machen.
 
Die .live()-Eventhandler können im Übrigen auch ausserhalb des "document ready"-Handlers definiert werden. Bringt bei kleineren Seiten nicht viel, aber bei größeren Seiten dürfte sich der Unterschied schon bemerkbar machen.

Gut, dass du das ansprichst. Den Selektor-Overhead kann man sich seit 1.4.1 aber auch sparen, da es die neuen Funktionen .delegate() und .undelegate() gibt.

PHP:
$('a').live('click', function() {});

// schneller
$(document).delegate('click', 'a', function() {});

// noch besser, falls die Links nur im Content-Bereich vorhanden sind.
$('#content').delegate('click', 'a', function() {});
 

Ähnliche Themen