Toon posts:

[js] onDragEnd probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wanneer ik een plaatje in een iframe van de ene tabelcel naar de andere sleep, wil ik dat hij iets doet met de afmetingen.

function sleepAfbeelding(element,nieuwe_hoogte,nieuwe_breedte)
{
element.style.width = nieuwe_breedte;
element.style.height = nieuwe_hoogte;
}

Het verotte is dat hij dit toepast op de oude locatie van het plaatje en niet op de nieuwe. Hij moet de oude dus eigenlijk eerst loslaten, dan de nieuwe selecteren en dan de afmetingen aanpassen. Kent iemand dit probleem? Ik hoop niet dat het al te vaag klinkt, anders wil ik nog wel wat meer toelichting geven.

Hij reageert dus op het onDragEnd event bij het slepen. Ik heb onDrop ook al geprobeerd, maar dan doet hij niks.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

dan ipv je element meegeven je nieuwe element :?

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
het element blijft hetzelfde.
Ik roep gewoon de functie aan met function(this,300,300) bijv. Dit zit in de imagetag en wordt dus meegenomen bij het draggen en droppen.

Verwijderd

Topicstarter
Ik zal proberen het iets anders uit te leggen, ik heb namelijk een andere oplossing in gedachten. Wie weet welk event er gevuurd wordt als ik een plaatje in een iframe selecteer (zodat er van die "sleepvierkantjes" omheen komen te staan)?

Nog beter zou zijn als iemand wist welk event er gevuurd wordt op het moment dat ik het plaatje niet meer geselecteerd heb. (Dus dat die sleepvierkantjes weg gaan). Dan kan ik namelijk op dat event bovenstaande functie aanroepen.

Verwijderd

Topicstarter
Dat is dus oncontrolselect. Helaas bestaat er geen oncontroldeselect en werken ondeactivate of onbeforedeactiavate en onblur ook niet. :'(

Het vreemde is dat wanneer ik hierna dubbelklik op zo'n sizing handler dat hij dan wel meteen goed resized. Is deze actie niet programmeertechnisch te simuleren?

Wanneer ik een plaatje naar een eerdere cell sleep dan werkt onderstaande code prima, wanneer ik het plaatje naar een cell verder in de tabel sleep, dan werkt de code niet en wordt het plaatje niet geresized naar het formaat van de cel.
Hieronder de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function SlepenAfbeelding(element, orginele_breedte, orginele_hoogte)
{
    var id = element.id;
    var nieuwe_breedte = element.width;
    var nieuwe_hoogte = element.height;
    var percentage_nieuwe_breedte;
    var percentage_nieuwe_hoogte;
    var breedte_hoogte_verhouding = orginele_breedte / orginele_hoogte;
    var breedte_huidige_cel = BepaalBreedteCel();
    
    // controleer eerst of afbeelding breder is dan breedte huidige cel
    if (nieuwe_breedte > breedte_huidige_cel)
    {
        nieuwe_breedte = breedte_huidige_cel;
        nieuwe_hoogte = nieuwe_breedte / breedte_hoogte_verhouding;
    }
    while ((element.tagName.toUpperCase(0) != 'TABLE') && (element.tagName.toUpperCase(0) != 'BODY'))
    {
        element = element.parentElement;
    }
    var pointer = foo.document.getElementById(id);
    pointer.style.width = nieuwe_breedte;
    pointer.style.height = nieuwe_hoogte;       
}


Ik snap er niks van en wordt er ook helemaal leip van. Zie ik iets enorm doms over het hoofd ofzo??

[ Voor 108% gewijzigd door Verwijderd op 05-02-2003 16:48 ]