|
Home Page
|
When an event occurs, the corresponding event listener function is invoked. This function should be written to expect one argument -- an Event object. Event objects have many useful properties; the one we're interested in is the target property, which tells us which Node is the event's intended target.
When we click the words or the image in a <div>, the target that gets returned is actually the text or the image inside the <div>, not the <div> itself. [The event's currentNode property is the one we really want, but it's not implemented in Mozilla release 15.]
Therefore, we have to write this function which checks to see if the target of the event we pass to it is a DIV element (tag). If not, the function keeps looking at that node's parentNode, and its parent, and so forth, until it finds a DIV element.
function findOwner( evt )
{
var node = evt.target;
while (node)
{
if ( node.nodeType == Node.ELEMENT_NODE &&
node.nodeName == "DIV")
{
return node;
}
node = node.parentNode;
}
return null;
}
Once we have the <div>'s node, we can change its properties, which we'll need to do for the highlight() and dim() functions. Notice that we change the shape of the cursor when it moves over the <div>.
function highlight( evt )
{
var obj = findOwner( evt );
if (isNav6) { obj.style.cursor = "pointer"; }
obj.style.color= "#ff0000"; // red
}
function dim( evt )
{
var obj = findOwner( evt );
if (isNav6) { obj.style.cursor = "default"; }
obj.style.color = "#000000"; // black
}
|
|
|
Implementing showMenu() |