| Autor | Zpráva | ||
|---|---|---|---|
| Petr Ká Profil * |
#1 · Zasláno: 23. 11. 2011, 00:01:11
Ahoj
Řeším problém s kalendářem akcí, kde při kliknutí na určitý den a je mu přiřazena "akce", zobrazí se "table" s akcemi pro daný den.. To je vše ok, ale řeším problém s tím, jak ho skrýt po kliknutí na jakýkoliv element v dokumentu (vyjma těch, obsažených uvnitř daného "table"). Schovávání mám prozatimně řešeno pomocí eventů týkajících se daného "table".. Jen tedy nevím jak to udělat tak, jak jsem popsal výše. Děkuji za pomoc |
||
| Petr Ká Profil |
#2 · Zasláno: 23. 11. 2011, 01:09:42
Vyřešeno... Ale přidám to sem, třeba se to bude hodit...
$(document.body).click(function() {
if($('#muj_div').is(':visible'))
{
$("#muj_div").hide();
}
});
je potřeba mít jQuery... |
||
| Chamurappi Profil |
#3 · Zasláno: 23. 11. 2011, 01:12:27 · Upravil/a: Chamurappi
Reaguji na Petra Ká:
Bývá zvykem, že se rozklikávací věci zavírají už při onmousedown, ne až při hotovém kliku.
Značná část událostí probublává — dozvídá se o nich i rodič elementu, na němž k události došlo. Takže při otevření kalendáře… A) … buď můžeš nastavit onmousedown na celý dokument a v něm vyhodnocovat, do čeho se kliká:
document.onmousedown = function(e)
{
var event = e || window.event;
var target = event.target || event.srcElement;
while(target && target != obalKalendáře) target = target.parentNode;
if(!target) zavřiKalendář();
};B) … nebo při onmousedown na dokumentu zavřeš kalendář vždy a při kliknutí dovnitř kalendáře stornuješ probublání události:
document.onmousedown = function()
{
zavřiKalendář();
};
obalKalendáře.onmousedown = function(e)
{
var event = e || window.event;
event.cancelBubble = true;
};„je potřeba mít jQuery...“ Závisláku. I s jQuery to jde vyřešit lépe. |
||
| Petr Ká Profil |
#4 · Zasláno: 23. 11. 2011, 02:30:35
Chamurappi:
Super, děkuji moc... Ještě menší dotaz : Když zobrazovanému elementu předávám zobrazované hodnoty přez TITLE="" , ignoruje html tagy.. Vše mám v pořádku, jen se místo Odkaz zobrazí <a href="http://www.example.com" >Odkaz</a> |
||
| _es Profil |
#5 · Zasláno: 23. 11. 2011, 06:37:24
Petr Ká:
„hodnoty přez TITLE="" , ignoruje html tagy.“ Title zobrazuje jednoduchý, nie formátovaný, text.
|
||
| Petr Ká Profil |
#6 · Zasláno: 23. 11. 2011, 10:20:18
To tedy znamena, ze mu musim hotnoty predat v nejakem stringu a pak si to prez split rozdelit ze? Nebo napadá jiné řešení ?
|
||
| Petr Ká Profil |
#7 · Zasláno: 23. 11. 2011, 12:26:01 · Upravil/a: Petr Ká
Tak jsem to predelal na JSON...
nicméně, ve všech proměnných mám vše, tak jak má být a problém bude na řádku td.appendChild((outhtml)); urcite mi tam neco chybí, protože v proměnné outhtml mám vše správně, jen se mi to v "TD" nezobrazí Celá část: var entries = titles[i].split('|||');
tr=tbody.appendChild(document.createElement('tr'));
td=tr.appendChild(document.createElement('td'));
$.get(
ec3.myfiles+'/json.php', {
id: entries[0]
},
function(data) {
if (data.stav==1){
var outhtml = '<a href="'+data.link+'">'+entries[1]+'</a><br />';
td.appendChild((outhtml));
} else {
return false;
}
},
'json'
); edit Není to "prasácké" řešení??? |
||
| Kajman_ Profil * |
#8 · Zasláno: 23. 11. 2011, 12:50:44
Přes appendChild se přídávají nody (nové můžete vytvořit např přes createElement nebo createTextNode).
Vzhledem k tomu, že td je prázné, můžete dát např. td.innerHTML=outhtml; |
||
| Petr Ká Profil |
#9 · Zasláno: 23. 11. 2011, 13:03:08
Kajman:
„Přes appendChild se přídávají nody (nové můžete vytvořit např přes createElement nebo createTextNode).“ to jsem zkoušel následovně: var outhtml = document.createElement('<a href="'+data.link+'">'+entries[1]+'</a><br />');
td.innerHTML(outhtml);Pak jsem to ještě zkoušel jinak.. A to : var odkaz = document.CreateElement('a');
odkaz.setAttribute('href', data.link);
odkaz.appendChild(document.createTextNode(entries[1]));
td.innerHTML(odkaz);Ale ani jedna varianta se mi nechytá. v data.link je URL odkazu v entries[1] mám text odkazu vše jsem si přez alerty ověřil.. |
||
| Kajman_ Profil * |
#10 · Zasláno: 23. 11. 2011, 13:38:26
Petr Ká:
„var odkaz = document.CreateElement('a');“ Zkuste malé c. |
||
| Kajman_ Profil * |
#11 · Zasláno: 23. 11. 2011, 13:41:30
var outhtml = '<a href="'+data.link+'">'+entries[1]+'</a><br />'; td.innerHTML(outhtml); var odkaz = document.createElement('a');
odkaz.setAttribute('href', data.link);
odkaz.appendChild(document.createTextNode(entries[1]));
td.appendChild(odkaz); |
||
| Petr Ká Profil |
#12 · Zasláno: 23. 11. 2011, 14:21:40
Vyřešeno... Vše se delal zbytečně složitě :)))) JS se teprve učím no :)))
Takze kdyby to někdo řešil tak : var entries = titles[i].split('|||');
tr=tbody.appendChild(document.createElement('tr'));
td=tr.appendChild(document.createElement('td'));
$.get(
ec3.myfiles+'/json.php', {
id: entries[0]
},
function(data) {
if (data.stav==1){
td.innerHTML=td.innerHTML+'<a href="'+data.link+'">'+entries[1]+'</a><br />';
} else {
return false;
}
},
'json'
); |
||
|
Časová prodleva: 15 let
|
|||
0