webForumDet fria alternativet

jQuery, samma funktion till flera objekt

1 svar · 391 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Tjena

Har den här funktionen:

$('#acode1,#acode2,#acode3,#acode4').click(function(e){
	var obj = $(this).attr('id');
	alert(obj);
	var $gN = $('#PhoneCountry');
	$gN.dialog("destroy");
	$gN.dialog({
		width: 330,
		height: 150,
		modal: true,
		closeOnEscape: true,
		buttons: {
			Stäng: function() {
				$(this).dialog('close');
			}
		}
	});
	$('select[name=AreaCode]').change(function(e){
		var value = $(this).val();
		$('#' + obj).val(value);
		$gN.dialog("destroy");
	});
});

Jag har fyra textfält med id'n #acode1,#acode2,#acode3 och #acode4. När man klickar i något av fälten öppnas en popup med en rullista, som heter "AreaCode".
Tanken är att när man valt en item i rullistan, ska dess värde fyllas i i det textfält man initialt klickat på.

Just nu funkar det endast första gången, fältet fylls i korrekt, men klickar man i nästa och väljer något i rullistan, fylls det "aktuella" fältet samt tidigare fält i med det nya värdet.
Har testat fram och tillbaka med alert's för att försöka hitta felet, men lyckas inte.

Jag antar att det är något objekt eller en variabel någonstans i funktionen som måste dödas när något valts?

Förslag?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#2

Verkar vara "destroy" som ställer till med något, osäker på vad...

Den här koden fungerar hur som helst jättebra. Det jag gjorde istället var att "knyta" objektet till dialogrutan och sen stänger jag den istället för att förstöra den.

$('#acode1,#acode2,#acode3,#acode4').click(function(e){
	var $gN = $('#PhoneCountry');
	$gN.dialog("open").data("obj", $(this)); 
	$gN.dialog({
		open: function(event, ui) {

		},
		width: 330,
		height: 150,
		modal: true,
		closeOnEscape: true,
		buttons: {
			Stäng: function() {
				$(this).dialog('close');
			}
		}
	});
	$('select[name=AreaCode]').change(function(e){
		var value = $(this).val();
		$gN.data("obj").val(value);
		$gN.dialog("close");
	});
});

Om någon kan förklara vad skillnaden är vore det toppen, vill gärna förstå vad jag gör istället för att bara göra ;)

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)