[ mojeKorIme @ 31.05.2007. 06:44 ] @
Pozdrav,
imam jedan problem koji me muci vec neko vrijeme... Pokusavam napraviti jednostavan edit in place i zapeo sam kod funkcija
u parametara..
Postavio sam dole kood koji radi.. sad hocu da napravim funkciju koja ce raditi za odredjene parametre..npr ako imam u bazi vise polja da mi funkcija radi za svako polje posebno.. nisam jos samo pokusao da mi php pravi za svako polje posebnu funkciju jer mislim da se to moze rijesiti na elegantniji nacin.

Code:

window.onload = function() {
        DepodanOku();
        document.getElementById('ovo').onclick = EditInPlace;    
    }
    
function EditInPlace()
    {
        var prolaz = document.getElementById('ovo').innerHTML;

        document.getElementById('ovo').onclick = function() { void(0) };
        
        var textarea = '<textarea id="kutija" onblur="return pisi(this.value)">'+prolaz+'</textarea>';

        document.getElementById('ovo').innerHTML = textarea;
        document.getElementById('kutija').focus();

    }
.
.
.
<div class="txt" id="ovo" title="naslov"></div>


Moze li mi neko pomoci i pokazati kako da to uradim.. moja ideja je bila (koja ne radi)

Code:

.
.
document.getElementById('ovo').onclick = EditInPlace('ovo');    
.
.

function EditInPlace(par)
    {
        var prolaz = document.getElementById(par).innerHTML;
.
.



[ bzero @ 31.05.2007. 11:39 ] @
Mozes da uradis ovako, umesto:

Code:

...
document.getElementById('ovo').onclick = EditInPlace;
...


stavis:

Code:

add_event(document.getElementById('ovo'), 'click', EditInPlace);


gde je add_event npr ovakva funkncija:

Code:

function add_event(o, e, f) {
    if (o.addEventListener) {
        o.addEventListener(e, f, false);
    }
    else if (o.attachEvent) {
        o.attachEvent('on' + e, f);
    }
}


Sada kada se pozove funkcija EditInPlace kao parametar ce imati event objekat, a pomocu njega mozes lako dobiti objekat na koji se taj event (ovde onclick) odnosi:

Code:

function EditInPlace(e) {

    var obj = (e.srcElement) ? e.srcElement : e.target;
    alert(obj); // ovo je sada objekat koji si pre dobijao sa document.getElementById

    ... itd ...
[ mojeKorIme @ 31.05.2007. 13:56 ] @
uhhh...
slab sam ti ja sa javascriptom.. mozes li mi ovo objasniti..ne radi mi opet
doduse ne javlja ni greske:/
ako hocs pocu ti kood koji radi pa da mi pomognes ili da mi jednostavno objasnis detaljnije ovdje

hvala jos jedanput
[ bzero @ 31.05.2007. 19:08 ] @
To sto si ti poslao gore, bi trebalo da izgleda ovako:

Code:

window.onload = function() {
    DepodanOku();
    add_event(document.getElementById('ovo'), 'click', EditInPlace);
    add_event(document.getElementById('nestodrugo'), 'click', EditInPlace);
}

function add_event(o, e, f) {
    if (o.addEventListener) {
        o.addEventListener(e, f, false);
    }
        else if (o.attachEvent) {
        o.attachEvent('on' + e, f);
    }
}
    
function EditInPlace(e) {

    var obj = (e.srcElement) ? e.srcElement : e.target;

        var prolaz = obj.innerHTML;

        obj.onclick = function() { void(0) };
        
        var textarea = '<textarea id="kutija" onblur="return pisi(this.value)">'+prolaz+'</textarea>';

        obj.innerHTML = textarea;
        document.getElementById('kutija').focus();

}
.
.
.
<div class="txt" id="ovo" title="naslov"></div>
<div class="txt" id="nestodrugo">drugi tekst</div>
[ mojeKorIme @ 01.06.2007. 06:51 ] @
glory 2 U :)

hvala jos jednom..sinoc sam isceprkao a nisam ti mogao javiti jer sam tek sad dosao do net-a