tommynator128: Onclick funktioniert nur ein mal

Hallo,

ich will einen Text editierbar machen, also wenn man drauf klickt kommt ein Text-feld und wenn man dann Enter drückt steht der eingegebene Text da. Es funktioniert bereits, allerdings nur genau ein mal, danach passiert gar nichts mehr. Warum? (das mit dem $-Zeichen ist von prototype.js)

der JS:

function submitName(e,id) {  
    if (e.keyCode == 13) {  
        var tb = $("nameBox_"+id).value;  
        $("name_"+id).innerHTML = tb;  
	$("name_"+id).onclick = 'changeName('+id+')';  
        return false;  
    }  
}  
function changeName(id) {  
	$("name_"+id).innerHTML = '<input id="nameBox_'+id+'" type="text" onkeypress="return submitName(event,'+id+')" />';  
	$("name_"+id).onclick = '';  
}

und der Code im Body:
<div onclick="changeName(1)" id="name_1">Test</div>

  1. Lieber tommynator128,

    nachdem ich Deinen Code kurz angeschaut habe, stellt sich mir die Frage, wann die Funktion "submitName" überhaupt aufgerufen wird.

    function changeName(id) {

    $("name_"+id).innerHTML = '<input id="nameBox_'+id+'" type="text" onkeypress="return submitName(event,'+id+')" />';
    $("name_"+id).onclick = '';
    }

      
    Hier wird nach dem ersten Aufruf das onclick-Event des jeweiligen Elements gelöscht. Deswegen kann man nur einmal editieren.  
      
    Liebe Grüße,  
      
    Felix Riesterer.
    
    -- 
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)