Archief - jQuery event van loaded page handlen in main page

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Curahee Q

Legacy Member
Beste 9livers

Ben wat aan het prutsen in jQuery om een kleine applicatie te maken zonder page refreshes. Het doel is om gegevens bij te houden van contactpersonen. Deze gegevens worden via ajax ingeladen en getoond in een div.

Deze gegevens kunnen ook aangepast worden via een edit knop. Deze edit knop zit bij in de ingeladen content. Nu heb ik mijn jQuery code in de index page als volgt

HTML:
		<script type="text/javascript">
	$(document).ready(function() {
		$(".loader").html('<div class="loader-img"><center><img src="img/design/loader.gif" /></center></div>');			

		var currentId = 1;

		$.get("data.php", {id: currentId, ret: "data"}, function(data){
			$(".loader").html(data);
		});

		$(".ajax-link").click(function() {
			$(".loader").html('<div class="loader-img"><center><img src="img/design/loader.gif" /></center></div>');			

			currentId = $(this).attr('id');

			$.get("data.php", {id: currentId, ret: "data"}, function(data){
				$(".loader").html(data);
			});
		});
		
		$(".add").click(function() {
			$.get("data.php", {id: currentId, ret: "new"}, function(data){
				$(".loader").html(data);
			});
		});
	});
	</script>

Nu zit dus de edit knop in de geladen data en zo ook de save knop om de data aan te passen.
Nu werkt het niet als ik in de $(document).ready(function{ }); bijvoorbeeld zet

HTML:
$(".save").click(function() {
      alert('test');
});

Waarschijnlijk omdat bij het laden van het document die save knop of de edit knop nog geen 'deel' zijn van de pagina? Maar hoe los ik dat dan op?

tomzorz

Legacy Member
Dan denk ik dat dit je wel uit de nood kan helpen Live Query | jQuery Plugins


Die livequery plugin dus invoegen en probeer dan dit eens:
Code:
$('.save') 
    .livequery('click', function(event) { 
        alert('test'); 
        return false; 
    });

Zero Grav

Legacy Member
live() zit onertussen standaard in JQuery ingebouwd, maar is ook wel enorm intensief. Die livequery is dus niet meer nodig als aparte plugin.
Een andere optie is om gewoon uw eventListeners te koppelen op het moment dat de data is ingeladen, dat is alleszins minder zwaar.

Curahee Q

Legacy Member
live() werkt perfect.

Wat bedoel je juist Zero Grav met eventListeners koppelen op het moment van inladen? Eventueel een klein voorbeeldje of dergelijke?

EDIT
Bedoel je dan met behulp van bind?
HTML:
$(".edit").bind('click', function() {
      alert('er is geklikt op de edit knop');
});

Zero Grav

Legacy Member
Ja, curahee. Gewoon pas binden op't moment dat de data is ingeladen en dus beschikbaar is.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan