[Xerte] Having problems duplicating nodes
Paul Swanson
Paul.Swanson at harlandfs.com
Wed Dec 3 22:04:09 GMT 2008
Well, apparently I was. I had the duplicate code in the entry frame of
lesson 1, so I guess it was executing each time I moved from page to
page in lesson 1? I moved the code to just above the interface icon (so
it can only run once), made the necessary changes to the childNodes
structure, and it was still acting funny. I then found that I had both a
variable and an icon id of 'lesson1Counter' so it's no wonder it was
acting inconsistently. ;o) I fixed that and now I'm consistently
getting the correct number of question nodes.
I still have one problem though: it only displays one question. When I
get to the first question node, it displays the question correctly, the
second node displays the same question, and if I back up to the first
question node, it's blank. Here is the code where I get the question
number:
questIndex = icon.parentNode.index() - 1;
The script icon with this code is the first icon in the proto Wrap Up
page (what I was calling the question node above), and the proto Wrap Up
page is the second child of the wrap up framework (the Entry Frame being
the first child), so questIndex should be 0 for the first question, and
1 for the next, right? I'm using questIndex+1 for a page counter, and
that is correctly displaying 1 for question 1 and 2 for question 2, but
the questions don't change. Any insight on that?
Thanks for all your help!
P
________________________________
From: xerte-bounces at lists.nottingham.ac.uk
[mailto:xerte-bounces at lists.nottingham.ac.uk] On Behalf Of Julian Tenney
Sent: Wednesday, December 03, 2008 12:45 PM
To: Xerte discussion list
Subject: RE: [Xerte] Having problems duplicating nodes
You're not duplicating icons more than once are you? When you
call duplicate, you are manipulatingthe xml in the rlo file:
//this makes n + 1 children on icon.nextSibling:
icon.nextSibling.firstChild.duplicate(n);
//call it again (perhaps because we revisit this page):
icon.nextSibling.firstChild.duplicate(n);
//how many children?
debug(icon.nextSibling.childNodes.length); //duh. Twice as many
as I needed.
//so, only let the duplicate run once, 'cos if we revisit a
page, we'll end up with too many xml nodes...
if (someFlag != true){
duplicate(....make icons here...);
someFlag = true;
}
//i tend to do it like this, so duplicate code in icon will only
ever run once:
if (icon.attributes.built != 'true'){
//duplicate and other logic here
icon.attributes.built = 'true';
}
sort that out and the see if you've got any issues left. The
thing is that 'icon' refers to the underlying xml node - that is key to
understanding what's happening with duplicate(); make sure the code that
builds the piece only runs once.
J
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.nottingham.ac.uk/pipermail/xerte/attachments/20081203/ac8d0d4d/attachment.html
More information about the Xerte
mailing list