Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JavaScript: kahden klikkauksen kuuntelu

pistemies [01.10.2011 13:15:30]

#

Mietin pystyisikö sama funktio hyödyntämään kahta valintaa ja tekemään niiden valintojen suhteen jotakin.

function valinnat(elementti,rivi,sarake) {
  var tekstit = document.getElementById(elementti).value;
}

Eli kyseessä on vaikka sarake 3.
Kaksoisklikataan sitä rivillä 4.
Sen jälkeen tehdään samoin rivillä 9.
Voisiko nuo molemmat valinnat tunnistaa? Olisi kiva, jos voisi :)

Esim. valintojen välisen tilan voisi sitten korostaa lievällä taustavärillä ynnä muuta tarpeellisempaa... vaikka kopioida jonnekkin..

Metabolix [01.10.2011 13:19:09]

#

Voisitko rivittää viestisi järkevämmin (eli jättää rivittämättä turhaan)?

Vähän jäi epäselväksi, mikä on ongelma. Ethän tarvitse kuin yhden muuttujan: jos se on tyhjä (null), tallennat siihen tiedon klikkauksesta, ja muuten kyseessä oli toinen klikkaus ja voit tehdä sille, mitä haluat. Jos käyttäisit edes pari tuntia JS:n alkeiden opetteluun, säästäisit varmaan kymmeniä tunteja näistä yksinkertaisista kysymyksistäsi.

Koodiasi varmaan selventäisi huomattavasti, jos et välittäisi funktioille turhaan id:tä vaan suoraan this-olion.

pistemies [01.10.2011 15:26:02]

#

Metabolix kirjoitti:

Ethän tarvitse kuin yhden muuttujan: jos se on tyhjä (null), tallennat siihen tiedon klikkauksesta, ja muuten kyseessä oli toinen klikkaus ja voit tehdä sille, mitä haluat. Jos käyttäisit edes pari tuntia JS:n alkeiden opetteluun, säästäisit varmaan kymmeniä tunteja näistä yksinkertaisista kysymyksistäsi.

Koodiasi varmaan selventäisi huomattavasti, jos et välittäisi funktioille turhaan id:tä vaan suoraan this-olion.

Vaikka lomakkeen sisältöä tuossa poiminkin, sen tarkka sijainti on tarpeen, siksi id:tä poimin, ja kahta eri id:tä (ja niiden eri rivinumeroita), ennen kuin asialle tehdään jotain.
Tämä minun testini käsittää kaikki funktioon viittauksen tuoksi ekaksi klikkaukseksi.

function make(elementti) {
  eka ="";
  toka="";
 if(eka == ""){
	  eka = elementti;
 }
 else{

	  toka = elementti;

 }
 if(toka !=""){
  alert('eka: '+eka+', toka: '+toka);
 }
}

Metabolix [01.10.2011 15:35:56]

#

pistemies kirjoitti:

Tämä minun testini käsittää kaikki funktioon viittauksen tuoksi ekaksi klikkaukseksi.

Mieti nyt vähän edes. Mikä mahtaa olla suunnilleen ensimmäinen asia, joka koodissasi tapahtuu klikkauksen jälkeen? Päästäänkö else-lohkoon koskaan?

x = 0;
if (x == 1) // ???

Eli tarvitset globaaleja muuttujia, jotka alustetaan funktion ulkopuolella.

pistemies kirjoitti:

sen tarkka sijainti on tarpeen, siksi id:tä poimin

Et nähtävästi ymmärtänyt ollenkaan, mitä kirjoitin. (Johtunee siitä, ettet osaa sitä JavaScriptia nimeksikään – oikeasti, miten edes viitsit yrittää koodata sillä, jos et yhtään opettele?) Sanoin, että voisit saada element-muuttujaan automaattisesti elementin (jonka nyt haet getElementById-funktiolla), ja siinä epätodennäköisessä tilanteessa, että myös id on tarpeen, se löytyisi tietenkin kohdasta element.id.

pistemies [01.10.2011 15:41:48]

#

Metabolix kirjoitti:

pistemies kirjoitti:

Tämä minun testini käsittää kaikki funktioon viittauksen tuoksi ekaksi klikkaukseksi.

Mieti nyt vähän edes. Mikä mahtaa olla suunnilleen ensimmäinen asia, joka koodissasi tapahtuu klikkauksen jälkeen? Päästäänkö else-lohkoon koskaan?

No joo... eka ="" aina, kun se se lukee tossa niin.

pistemies [01.10.2011 19:06:57]

#

Keksimpä viimein.

var riviValinta;
function make(row,col) {
	 var toka;
	   if(riviValinta == null){
	    riviValinta = row;
	    toka ="";
	    }
	    else{
	    toka = row;
	    }
	    if(toka !=""){
	    alert('eka:'+riviValinta+' toka:'+toka);
	    }
}

Tuolle sarakkeelle pitänee laittaa myös globaalimuuttuja, jotta voi verrata eka ja tokaklikkausta, osuuko ne samalle sarakkeelle... niinku on tarkotus.
Kiitos!

pistemies [01.10.2011 20:32:23]

#

Tuolta löytyi sellaisia skriptejä joita meikäkin ymmärtää, monille on annettu sama nimi kuin php:ssa

http://phpjs.org/

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta