login  Naam:   Wachtwoord: 
Registreer je!
 Forum

functie probleem onblur en onclick. (Opgelost)

Offline lolll - 26/09/2010 09:52
Avatar van lolllLid Beste SiMa's,
ik heb volgend stukje code geschreven, om even iets te testen. Ik was er bijna uitgekomen, maar juist op het einde lukt het niet. De bedoeling van de code is, om in een <p> tag een tekstveld te zetten, zodra er op de p gedrukt wordt, met de inhoud van de alinea p. Dat lukte goed. Daarna, als het tekstveld de aandacht verliest (onblur), moest het weer verdwijnen, met de nieuwe tekst in de alinea. Ook dat lukte, alleen, als ik daarna weer op de <p> tag klik, veranderd het niet meer naar een tekstveld. Hopelijk begrijpen jullie het een beetje.
Code:
  1. function changep(pid,action){
  2. var currentp="p" + pid;
  3. currentp=document.getElementById(currentp);
  4. if(action=='klik'){
  5. currentp.innerHTML="<input type='text' onBlur='changep(\"" + pid + "\",\"blur\")' id='txt" + pid + "' value='" + currentp.innerHTML + "' />";
  6. currentp.onclick="";
  7. }
  8. if(action=='blur'){
  9. var currenttxtfield=document.getElementById("txt" + pid);
  10. currenttxtfield.onblur="";
  11. currentp.innerHTML=currenttxtfield.value;
  12. currentp.onclick="changep('" + pid + "','klik')";
  13. }
  14. }


Grt,Lolll

7 antwoorden

Gesponsorde links
Offline gnotrgnotr - 26/09/2010 10:41 (laatste wijziging 26/09/2010 10:46)
Avatar van gnotrgnotr Nieuw lid Heb jij je code wel goed nagekeken of er fouten inzitten of dat een element niet bestaat
Offline lolll - 26/09/2010 11:25 (laatste wijziging 26/09/2010 16:48)
Avatar van lolll Lid ja, alle elementen bestaan. Zie jij mss iets wat niet klopt ofzo ?

hier is de code met de html erbij, mss is daar iets fout aan.
  1. <head>
  2. <title>testie.html</title>
  3. <script language="javascript">
  4. function changep(pid,action){
  5. var currentp="p" + pid;
  6. currentp=document.getElementById(currentp);
  7. if(action=='klik'){
  8. currentp.innerHTML="<input type='text' onBlur='changep(\"" + pid + "\",\"blur\")' id='txt" + pid + "' value='" + currentp.innerHTML + "' />";
  9. currentp.onclick="";
  10. }
  11. if(action=='blur'){
  12. var currenttxtfield=document.getElementById("txt" + pid);
  13. currenttxtfield.onblur="";
  14. currentp.innerHTML=currenttxtfield.value;
  15. currentp.onclick="changep('" + pid + "','klik')";
  16. }
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <p onClick="changep('1','klik')" id="p1">5</p>
  22. <p onClick="changep('2','klik')" id="p2">3</p>
  23. </body>
  24. </html>
Offline gnotrgnotr - 26/09/2010 19:30
Avatar van gnotrgnotr Nieuw lid Volgens mij heeft de p tag geen onclick attribuut en jQuery wacht op je
Offline cx1213 - 26/09/2010 19:37
Avatar van cx1213 Lid je kan via javascript met element.onclick alleen de functie naam geven niet attributen.
Bedankt door: lolll
Offline lolll - 26/09/2010 20:05
Avatar van lolll Lid @gnotrgnotr: p heeft wel een onclick, ik wil zo weinig mogelijk jQuery gebruiken.
@cx1213: dat wist ik niet. Ik zal wel nog wat proberen om dat op te lossen. bedankt voor de reactie.
Offline gnotrgnotr - 28/09/2010 19:25 (laatste wijziging 28/09/2010 19:26)
Avatar van gnotrgnotr Nieuw lid @lolll: p heeft wel een onclick, ik wil zo weinig mogelijk jQuery gebruiken.
waarom geen jQuery?
Offline lolll - 28/09/2010 20:00
Avatar van lolll Lid heb de oplossing in gewoon javascript gevonden.
  1. function changep(pid,action){
  2. var currentp="p" + pid;
  3. currentp=document.getElementById(currentp);
  4. if(action=='klik'){
  5. if(!document.getElementById("txt" + pid)){
  6. currentp.innerHTML="<input type='text' onBlur='changep(\"" + pid + "\",\"blur\")' id='txt" + pid + "' value='" + currentp.innerHTML + "' />";
  7. document.getElementById("txt" + pid).focus();
  8. }
  9. }
  10. if(action=='blur'){
  11. var currenttxtfield=document.getElementById("txt" + pid);
  12. currentp.innerHTML=currenttxtfield.value;
  13. }
  14. }


@gnotrgnotr: 1 ik snap niets van jQuery, 2 als het met gewoon js kan, doe ik het liever zo.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s