Ik heb een link die er zo uit ziet:

<a href="#" data-href="<?php echo $row["id"]; ?>" class="delbericht"><img src="images/icons/delete.png" width="20px" class="delete" /></a>


Ik heb via het bronbestand van de browser gekeken en ik zie dat de data-href value gevuld is met een id.

Vervolgens wil ik die variabele gebruiken in een ajax call alleen geeft hij steeds aan dat deze leeg is.
Wie weet waarom hij denkt dat deze variabele leeg is?


$(".delbericht").click(function(e){
			e.preventDefault();
			href=$(this).data("href");
			swal({
				title: "Weet je het zeker?",
				text: "Dit bericht wordt permanent verwijderd",
				type: "warning",
				showCancelButton: true,
				closeOnConfirm: false,
				showLoaderOnConfirm: true,
			}, 
			function() {
				$.ajax({
					type: "POST",
					url: "scripts/jquery-posts.php",
					data: 'delbericht=' + href,
					success: function(msg){		
						setTimeout(function(){
							swal("Bericht succesvol verwijderd");
						}, 2000); 
					},
					error: function(msg){		
						setTimeout(function(){
							swal("Error: kan bericht niet verwijderen");
						}, 2000); 
					}
				}); // Ajax Call
			});
		});

var target = $('a');
var href = target.data("href");


Corrigeer dit even:


$(".delbericht").click(function(e){

Naar:

$(".delbericht").on('click', function(e){
Ik heb beide aangepast maar helaas werkt het nog niet.
Het werkt hier prima. Controleer maar eens door te debuggen:



alert(href);
Wanneer ik dit toepas wat jij zei:

var target = $('a');
var href = target.data("href");
alert(href);

Krijg ik: undefined

Wanneer ik het laat zoals ik had:

href=$(this).data("href");
alert(href);


Krijg ik wel de goede id terug.

Maar helaas werkt mijn ajax call nog steeds niet, dus hij bereikt die functie niet lijkt wel.
Hm apart, maar hij pakt je id dus wel, dan is de vraag wat je bedoelt met 'leeg'? Wat doet er niet?
probeer eens console.log(href) onder href en boven swal({

en kijken of deze gevuld is..

Daarnaast kun je anders kijken of je href wel gevuld is met:



href=$(this).attr("data-href");


daarnaast wat zit er in je href, wellicht dat je deze moet escapen bijvoorbeeld als er een = inzit...
Remco,

De href is wel gevuld zowel met alert als met console.log.
In mijn data-href zit een id en dat is in dit geval een enkel cijfer: 6, 5 of 4.

Alleen ik roep deze variabele weer aan in de ajax call onderaan maar daar blijkt die leeg te zijn.
Verplaats dan href=$(this).data("href"); naar je volgende functie. Probleem opgelost.
zit jouw ajax call in een function die weer in de functie-aanroep swa1 zit?

helpt het eventueel als je "var" zet voor href=....



[size=xsmall]Toevoeging op 01/09/2015 15:51:11:[/size]

@DavY

verwijst "this" dan niet naar iets anders dan naar het geklikte element?
@Ivo,

Dat is ook zo. De oplossing zit hem dan al in mijn eerste reactie.

Reageren