ugrás a tartalomhoz

JS DIV tartalom = disabled

PredMan · 2008. Feb. 7. (Cs), 11.28
Sziasztok!

van egy olyan textaream, ami mellett képek vannak. Mindegyik képhez hivatkozást rendeltem. Ha a szövegmezőben kijelölnek egy részt és rákattintanak az egyik képre, akkor azt közé rakja stb... ezt ezzel a kóddal valósítottam meg:

function asdf(tag) {

if (document.form.leiras.selectionStart==undefined) {
kij=document.selection.createRange().text.length
}

else {
kij=document.form.leiras.selectionEnd-document.form.leiras.selectionStart
}


if(kij==0) {
alert("Nem jelölt ki szöveget!");
return false;
}

if (navigator.appName == "Netscape") {
document.form.leiras.value = document.form.leiras.value.substring(0,document.form.leiras.selectionStart) + "[" + tag + "]" + document.form.leiras.value.substring(document.form.leiras.selectionStart,document.form.leiras.selectionEnd) + "[/" + tag + "]" + document.form.leiras.value.substring(document.form.leiras.selectionEnd,document.form.leiras.value.length)
}

else {
document.selection.createRange().text = "[" + tag + "]" + document.selection.createRange().text + "[/" + tag + "]"
}
}

és így hivatkozok rá:

<textarea cols=60 rows=12 name="leiras" id="leiras" wrap="TRUE" onkeydown="return catchTab(this,event)"></textarea></td>

...

<td align="center"><a onclick="insertcode_leiras('[LN]'); refocus_leiras(); return false;" href=""><img src="Images/sorsz.jpg" border="0" /></a>
<a href="#" onClick="asdf('T')"><img src="Images/tab.jpg" border="0"></a>
<br><br>
<a href="#" onClick="asdf('B')"><img src="Images/bold.jpg" border="0"></a>
<a href="#" onClick="asdf('I')"><img src="Images/italic.jpg" border="0"></a>
<a href="#" onClick="asdf('A')"><img src="Images/underline.jpg" border="0"></a>
</td>

ez működik is de...

a cél az lenne, hogy ha a felhasználó nem kattint a textareaba, akkor ezekre a képekre ne lehessen rákattintani, ezért gondoltam azt, hogy ezeket div-be rakom, csak nem tudom, hogyan kell a div tartalmát disabled-re állítani, már ha lehet...

tudnátok nekem ebben segíteni? előre is köszönöm!
 
1

display

Velias9 · 2008. Feb. 7. (Cs), 17.18
Ha a képet egy tartalmazó 2 divbe rakod, valahogy így:

...

<div id="nagyTarto">
   <div id="kepTarto" style="display: none;">
      <a href="javascript:asdf('T');">
      <img src="Images/tab.jpg" width="<!-- kép szélesség -->" height="<!-- kép magasság -->">
      </a>
   </div>
</div>

...
Nem árt, ha megadod a képek méreteit akkor is, ha amúgy a megfelelő méretűek, mert így böngésző nem egy előre meghatározott helyet hagy ki nekik, hanem csak akkorát, amekkora kell. A href="javascript:..." ugyan úgy működik, mint a te kódod, csak nem rondítja össze az URL-t (én ezt jobban szeretem.)

És adsz neki CSS-t:

...

#nagyTarto
{
   backdround-image: url('Images/tab.jpg');
   width: 25px; (példa) //kép szélesség
   height: 25px; (példa) //kép magasság
}

...
Vigyázz arra, hogy a magasság és a szélesség beállítások a CSS-ben nem aháttérképre, hanem a dobozra vonatkoznak, szóval a képnek pontosan akkorának kell lennie, amekkorának szueretnéd látni, mert a háttérkép mértetét nem lehet állítani.

És adsz neki egy kis JavaScriptet:

...

function mutatKepek()
{
   var azonositok = array('kepTarto', ...); /* A 'kepTarto' szintű dobozok azonosítóit írd ide! */
   for (i = 0; i < azonositok.length; i++)
   {
       document.getElementById(azonositok[i]).style.display = "block";
   {
}

function elrejtKepek()
{
   var azonositok = array('kepTarto', ...); /* A 'kepTarto' szintű dobozok azonosítóit írd ide! */
   for (i = 0; i < azonositok.length; i++)
   {
       document.getElementById(azonositok[i]).style.display = "none";
   {
}

...
És végül a textarea:

...

<textarea onFocus="mutatKepek();" onBlur="elrejtKepek();" ... ></textarea>

...
Ez az egész azt eredményezi, hogy eléred a kívánt hatást )ha minden jól megy).

Remélem tudtam segíteni.
2

ezt ne

gex · 2008. Feb. 7. (Cs), 17.50
ezt a href="javascript:..."-et nem csak, hogy ne használd, de ne is ajánlgasd. :)

ajánlott cikk: http://weblabor.hu/cikkek/diszkretjavascript
3

Igaz!

Velias9 · 2008. Feb. 7. (Cs), 18.13
Igazad van, bocsi ezt nem tudtam. PredMan! Bocsi, hogy ajánltam, de tényleg ne használd!

Azonban a belinkelt oldalon talált megoldások közül egyik sem telljesen jó bizonyos célokra. Például kéne egy hivatkozás, ami nem mutat sehová (még href="#" sincs) és kattintásra JavaScriptet hív meg, de valami egyszerűbb módon, mint a példában leírt classos megoldás. Láttam már egy nohref paramétert, de pont ott említették azt is, hogy nem biztos, hogy szabványos az XHTML 1.0 és HTML 4.0 szabványok alapján.

Nincs valami ötleted?
És amúgy a megoldás szerinted jó?
4

miért nem jó a href="#"?

gex · 2008. Feb. 7. (Cs), 18.35
miért nem jó a href="#"? azért, mert nem mutat jól az állapotsorban?
5

file:/// protokoll a baj

Velias9 · 2008. Feb. 7. (Cs), 18.39
A mikor az otthoni gépemen dolgozok, a "#" végére írása hatására a Windows a fájl elérési útjában található neki nem tetsző karaktereket (például szóköz és az összes ékezetes betű) kicseréli és a frissítéskor hülyeségeket csinál (például nem frissít és kiírja, hogy ilyen fájl nincs is).
6

Amúgy...

Velias9 · 2008. Feb. 7. (Cs), 18.49
...megy igen az is baj, hogy zavar.
7

thx

PredMan · 2008. Feb. 8. (P), 20.19
köszönöm szépen mindegyikőtök segítségét! sikerült megoldani a feladatot! ;)

elolvastam a diszkrét javascript elméletet, bizony okos dolgokat írnak benne!
8

most én kérdeznék...

Velias9 · 2008. Feb. 11. (H), 16.33
A kódot, amit írtam fejből írtam és így nem tudtam letesztelni. Nem voltak gondok az onBlur eseménykezelővel? Minden működött, ahogy kell?