Diskuze: Editor tabulek

JavaScript JavaScript Editor tabulek

Avatar
Ondřej Hanák
Redaktor
Avatar
Ondřej Hanák:

Zdravím, potřeboval bych poradit.
Mám soubor script.js, který mám pro editaci tabulek.

1. problém je, že když např. vytvořím novou buňku, potřebuji volat funkci load(), bez které mi nová buňka nejde označit(pak ani editovat).
Tak se ptám, jestli by se nedala nahradit.

2. problém je, že při editaci, kdy se mi zobrazí dialog, se zobrazení dialogu pořád stupňuje.
Nevím, co s tím.
Předem děkuji.
A soubory: http://ulozto.cz/…-tabulek-zip

Editováno 30.8.2014 16:14
 
Odpovědět 30.8.2014 16:14
Avatar
Michal Žůrek (misaz):

a to je ten problém na který jsem tě upozorňoval v hodnocení. Každou buňku vytvoříš tak že prostě v jQuery zavoláš

.něco("<tag>tag vkládáš v stringu!"</tag>);

tímto si sice někde vytvoříš nový <tag> ale už s ním nemůžeš pracovat. Pokud bys použil

var newTag = document.createElement("tag");

tak můžeš zavolat

newTag.focus()

a to ti element označí. Jenže když ten tag naplácáš v stringu, na co pak budeš focus() volat?

Editováno 30.8.2014 16:31
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 30.8.2014 16:30
Nesnáším {}, proto se jim vyhýbám.
Avatar
Michal Žůrek (misaz):

počkej si až o tom vyjdou tutoriály a pak si je přečti.

Nahoru Odpovědět 30.8.2014 16:32
Nesnáším {}, proto se jim vyhýbám.
Avatar
Ondřej Hanák
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Ondřej Hanák:

Ale jak provedu, aby se tag vytvořil u té značky?

Editováno 30.8.2014 16:49
 
Nahoru Odpovědět 30.8.2014 16:49
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Ondřej Hanák
Honza Bittner:

Na vkládání můžeš použít i .after(), případně .before(). ( http://goo.gl/72Nauu )

Označování nové buňky pak jen 'jednoduše' uděláš přes její pozici, ne?

Tedy například 3. buňka na 2. řádku => změň styl na .aktivni či tak.

Editováno 30.8.2014 17:05
Nahoru Odpovědět 30.8.2014 17:04
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Ondřej Hanák
Redaktor
Avatar
Odpovídá na Honza Bittner
Ondřej Hanák:

Zkouším to, co mi radíte, ale nefunguje mi to :(

 
Nahoru Odpovědět 30.8.2014 21:40
Avatar
Ondřej Hanák
Redaktor
Avatar
Odpovídá na Honza Bittner
Ondřej Hanák:

To mám takto:

 function add_cell_r()
 {
     var newTag = document.createElement("td");
     $(".oznacenaBunka").after(newTag);
 }

 $("#add_cell_r").on("click", function()
 {
     add_cell_r();
 });

...

 $('td').on("click", function()
 {
     $('.oznacenaBunka').removeClass();
     $('.oznacenyRadek').removeClass();
     $(this).addClass('oznacenaBunka');
     var tr = $('.oznacenaBunka')[0].parentNode;
     $(tr).addClass('oznacenyRadek');
 });
Editováno 30.8.2014 22:16
 
Nahoru Odpovědět 30.8.2014 22:15
Avatar
Odpovídá na Ondřej Hanák
Michal Žůrek (misaz):

to je lepší. Zkus

function add_cell_r()
{
    var newTag = document.createElement("td");
    $(".oznacenaBunka").after(newTag);
    newTag.click();
}
Nahoru Odpovědět 30.8.2014 22:22
Nesnáším {}, proto se jim vyhýbám.
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:

Á když ten element zkusíš uložit v defaultním JS, tak ještě ušetříš několik desítek znaků.

 
Nahoru Odpovědět 30.8.2014 22:43
Avatar
Odpovídá na 1Pupik1989
Michal Žůrek (misaz):

to po něm nemůžeš chtít, on to horko těžko splácal v jQuery. Nevím jak by překousal náhradu za takové before(). Pro nás to sice není nic těžkého ale pro něj je problém i bez jQuery vytvořit element.

Nahoru Odpovědět  +1 30.8.2014 22:47
Nesnáším {}, proto se jim vyhýbám.
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:

Tak by měl asi začít s javascriptem of začátku. Je to naprosto minimalistický jazyk. Javu jsem potom zvládnul za měsíc. Pokud JS neumí, tak ať se ho začne učit. Ušetří mu to práci, kromě návodu na OOP zde na webu, který nikdo neopravil.

 
Nahoru Odpovědět 31.8.2014 0:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.