Connecting Tech Pros Worldwide Help | Site Map

Rollovers in Mozilla

 
LinkBack Thread Tools Search this Thread
  #1  
Old July 23rd, 2005, 10:42 AM
Aaron
Guest
 
Posts: n/a
Default Rollovers in Mozilla

Hi,

I have the following function...

function display(subject) {
var topic="";
var chapter="";
var assignment="";
if (subject=="HTML") {
topic="HTML";
chapter="1-6";
assignment="1";
}
else if (subject=="DHTML") {
topic="DHTML";
chapter="11-15";
assignment="6-8";
}

var topicName=document.getElementById("topic");
var newTopic=document.createTextNode(topic);
topicName.replaceChild(newTopic, topicName.childNodes[0]);

var chapterName=document.getElementById("chapter");
var newChapter=document.createTextNode(chapter);
chapterName.replaceChild(newChapter, chapterName.childNodes[0]);

var assignmentName=document.getElementById("assignment ");
var newAssignment=document.createTextNode(assignment);
assignmentName.replaceChild(newAssignment, assignmentName.childNodes[0]);
}

....which is called in the following:

<table>
<tr>
<a href="#" onMouseOver='display("HTML")'><td>HTML</td></a>
<a href="#" onMouseOver='display("DHTML")'><td>DHTML</td></a>
</tr>
</table>
<ul>
<li><h4>Topic: </h4><span id="topic">HTML Review</span></li>
<li><h4>Chapters: </h4><span id="chapter">1-6</span></li>
<li><h4>Assignments: </h4><span id="assignment">1</span></li>
</ul>

This works great in IE6, but does nothing in Mozilla browsers. Does
anyone see the problem here?

Thanks,
Aaron



  #2  
Old July 23rd, 2005, 10:43 AM
Brian Genisio
Guest
 
Posts: n/a
Default Re: Rollovers in Mozilla

Aaron wrote:
[color=blue]
> <table>
> <tr>
> <a href="#" onMouseOver='display("HTML")'><td>HTML</td></a>
> <a href="#" onMouseOver='display("DHTML")'><td>DHTML</td></a>[/color]

Here is your problem... It needs to be changed to:

<td><a href="#" onMouseOver='display("HTML")'>HTML</a></td>
<td><a href="#" onMouseOver='display("DHTML")'>DHTML</a></td>

See, it doesnt make sense to have an anchor tag in a TR tag. Only table
cells may be in a TR tag (TD, or TH).

Why does IE do it? Because they will parse any non-standard HTML code,
even if it doesnt make sense. It creates a world of non-compliance that
annoys a lot of people.

Brian

  #3  
Old July 23rd, 2005, 10:43 AM
Martin Honnen
Guest
 
Posts: n/a
Default Re: Rollovers in Mozilla



Aaron wrote:
[color=blue]
> I have the following function...
>
> function display(subject) {
> var topic="";
> var chapter="";
> var assignment="";
> if (subject=="HTML") {
> topic="HTML";
> chapter="1-6";
> assignment="1";
> }
> else if (subject=="DHTML") {
> topic="DHTML";
> chapter="11-15";
> assignment="6-8";
> }
>
> var topicName=document.getElementById("topic");
> var newTopic=document.createTextNode(topic);
> topicName.replaceChild(newTopic, topicName.childNodes[0]);
>
> var chapterName=document.getElementById("chapter");
> var newChapter=document.createTextNode(chapter);
> chapterName.replaceChild(newChapter, chapterName.childNodes[0]);
>
> var assignmentName=document.getElementById("assignment ");
> var newAssignment=document.createTextNode(assignment);
> assignmentName.replaceChild(newAssignment,
> assignmentName.childNodes[0]);
> }[/color]

When I stuff that function into a <script> element in the head of a HTML
page and see below
[color=blue]
> ...which is called in the following:
>
> <table>
> <tr>
> <a href="#" onMouseOver='display("HTML")'><td>HTML</td></a>
> <a href="#" onMouseOver='display("DHTML")'><td>DHTML</td></a>[/color]

and correct the markup to properly have the <a> elements inside of <td>
elements e.g.

<td><a href="#" onMouseOver='display("HTML")'>HTML</a></td>
<td><a href="#" onMouseOver='display("DHTML")'>DHTML</a></td>[color=blue]
> </tr>
> </table>
> <ul>
> <li><h4>Topic: </h4><span id="topic">HTML Review</span></li>
> <li><h4>Chapters: </h4><span id="chapter">1-6</span></li>
> <li><h4>Assignments: </h4><span id="assignment">1</span></li>
> </ul>
>
> This works great in IE6, but does nothing in Mozilla browsers. Does
> anyone see the problem here?[/color]

then I don't have any problem here with Netscape 7.1, onmouseover the
text nodes are changed.

You might even not use the <a> element at all but directly use
<td onmouseover="..."
instead.

--

Martin Honnen
http://JavaScript.FAQTs.com/

 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.