Hallo allemaal,

Ik zit met een klein probleempje.
Ik heb de volgende code:
<?php
/* alleen ff voor de syntax highlight */

$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();

var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');

nothidden.removeClass('nothidden');
nothidden.addClass('hidden');

hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>

Nu wordt dus als er op een td wordt geklikt, de span met class"nothidden" in die td "hidden" gemaakt. En de span met class"hidden" "nothidden" gemaakt.

Dit werkt allemaal goed.

Alleen heb ik in de span "hidden" een input staan.
Dus als ik op mijn input klik om deze inhoud te bewerken, wordt hidden weer nothidden en nothidden weer hidden. En is m'n input weer "weg".

Kan ik dit oplossen dmv css selectors? $$('.table tr td *!=input') o.i.d.?
Of heeft iemand een andere oplossing?

Ik hoor het graag!

Mvg,
Boris

PS: ik werk met mootools
Kan je niet een event-handler aan je input element hangen, die dan het event stopt zodat het niet verder propageert naar de tr en andere bovenliggende nodes?

Je kan ook in je event zien waarop geklikt is (e.target of e.srcElement volgens mij, zou best wel eens kunnen verschillen in IE/FF, maar mootools heeft daar vast wel een oplossing voor) en daarvan de tagName opvragen. Is die "INPUT", dan weet je dat je daarop gelikt hebt.
Hmm.. je bodoelt: onClick="return false;" op m'n input?
Werkt helaas niet..

Wel bedankt voor het meedenken!

Edit:
Ik heb nu dit toegevoegd:

el.getElement('span form input').addEvent('click', function(event) {
	event.stop();
	return false;
});


Waardoor het totaal er zo uitziet:
<?
$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();

el.getElement('span form input').addEvent('click', function(event) {
event.stop();
return false;
});

var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');

nothidden.removeClass('nothidden');
nothidden.addClass('hidden');

hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>

Nu kan ik iig in mijn input klikken.
Wanneer ik nu echter op enter druk om mijn formulier te submitten.

Lijkt het wel of die onclick weer "geactiveerd" wordt, en is mijn input weer "weg".

Iemand een idee hoe dit kan?

mvg,
Boris



EDIT2:
Dat laatste stukje code gewijzigd naar:
<?
el.getElement('span form').addEvent('click', function(event) {
event.stop();
return false;
});
?>

(dus in de getElement "input" weggehaald.)

Maar het vreemde is, dat als ik nu op enter druk, hij in IE wel submit maar in FF niet..
Iemand enig idee?

mvg
Probleem opgelost.

Heb op de submit button een onClick geplaatst. (onclick="form.onsubmit()")
En nu werkt het.

mvg
boris

Reageren