Toon posts:

[JS] Inserting in DOM op een willekeurige plaats*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een stuk code in mijn pagina te plaatsen d.m.v. van een call.

De volgende regel plaatst mijn code direct na de body tag.
code:
1
document.body.insertBefore(this.MBwindow, document.body.childNodes[0]);


En de code die geplaatst wordt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
this.MBwindow = Builder.node("div", {id: "MB_windows", style: "display: none"}, [
            this.MBframe = Builder.node("div", {id: "MB_frame"}, [
                this.MBheader = Builder.node("div", {id: "MB_header"}, [
                    this.MBcaption = Builder.node("div", {id: "MB_caption"}),
                    this.MBclose = Builder.node("a", {id: "MB_close", title: this.options.closeString, href: "#"}, [
                        Builder.build("<span>&times;</span>"),
                    ]),
                ]),
                this.MBcontent = Builder.node("div", {id: "MB_content"}, [
                    this.MBloading = Builder.node("div", {id: "MB_loading"}, this.options.loadingString),
                ]),
            ]),
        ]);



Mijn vraag:
Hoe kan ik de insert laten plaats vinden op een willekeurige plek binnen mijn code?

Het script dat ik gebruik is Modalbox (http://okonet.ru/projects/modalbox/)

Alvast super bedankt voor de hulp.

[ Voor 58% gewijzigd door Verwijderd op 07-06-2007 16:22 ]


  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
je code zegt het toch al ?
code:
1
document.body.insertBefore(this.MBwindow, document.body.childNodes[0]);



insertbefore - childnode[0]

insert voor de allereerste childnode van de body ....
(en dit is maar zeer simpel je eigen aangeleverde code lezen)

pas dat cijfer aan achteraan - randomize ofzo :) - en voila: op 'willekeurige' plaats.
of ga nog enkele childnodes dieper

ofpas die regel zo aan:
code:
1
document.body.insertBefore(this.MBwindow, document.getElementById["whereToInsert"]);


dit en een JS-hulp op de gebruikte functie's gaat je wrs al veel helpen
(maw: had je de nu gebruikte functies al eens opgezocht dan was het wrs al zeer duidelijk geworden)

(programmeren is vaak gewoon trail and error tot het werkt zoals jij wilt - zekers met code verkregen van anderen)

[ Voor 34% gewijzigd door soulrider op 07-06-2007 16:45 ]


Verwijderd

Topicstarter
Bedankt voor je hulp. Dit was inderdaad de oplossing.

Ik heb het opgelost met de volgende code.
code:
1
document.body.insertBefore(this.MBwindow, document.getElementById('container'));

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Waarom er AJAX in je titel staat is mij een compleet raadsel. ;) Topictitle change.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
Verwijderd schreef op donderdag 07 juni 2007 @ 17:01:
Bedankt voor je hulp. Dit was inderdaad de oplossing.

Ik heb het opgelost met de volgende code.
code:
1
document.body.insertBefore(this.MBwindow, document.getElementById('container'));
thanx for the feedback.

en da's graag gedaan - heb zelf ook met dergelijke dingen effe zitten zoeken/zweten,
maar vaak komt het neer op wat proberen, functie's opzoeken, alternatieven opzoeken en verder uit proberen.