|
|
| Welcome to the Mac Forums forums. Please read the FAQ if you have questions. Register to participate. |
|
|||||||
| TouchArcade.com - iPhone Game Reviews and News |
![]() |
|
|
Thread Tools | Search this Thread | Display Modes |
|
|
#1 |
|
macrumors 68020
|
My ANGER at this code will never die! -- I am about to give up....
This has to be the worst code I have ever written...
It's making me SO angry. Please, please, tell me what is wrong with this page. The alert box continually comes up "null", which is very very incorrect. I have look at it for an hour and a half already... and I can't for the life of me tell what the heck is wrong. Code:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<title>Ticker Version 2.0</title>
<head>
<script type="text/Javascript">
var myBox = document.getElementById("tickerBox");
var tickerFrame = document.getElementById("mainDiv");
//var mytextNode = document.CreateTextNode("child this is");
//myBox.timer = setInterval(setTickerBoxText,"20");
//myBox.appendChild(textNode);
function setTickerBoxText(textValue)
{
alert(tickerFrame);
}
</script>
<style type="text/CSS">
#mainDiv
{
position: absolute;
top: 50px;
left: 50px;
width: 500px;
height: 400px;
background-color: rgb(201,200,100);
}
</style>
</head>
<body onLoad="setTickerBoxText('alex')">
<div id="mainDiv" onMouseOver="setTickerBoxText('a')">
</div>
There's the page uploaded. Thanks for any help! I am desperate!
|
|
|
|
|
|
#2 |
|
macrumors 65816
Join Date: Apr 2004
Location: AU
|
disclaimer: I am NOT a web developer.
If the div hasn't been rendered at the time you try to reference it then your script (the getElementById call) will return null. If you move the script underneath the div you will see that it is no longer null. |
|
|
|
|
|
#3 |
|
macrumors 68030
Join Date: Aug 2005
|
I'm no developer either, but I thought that this way just declared the function. Then, later in the code, you could run that function and get results at that particular moment.
|
|
|
|
|
|
#4 |
|
Demi-God (Moderator)
|
I don't have any experience with this type of code - but just looking at it you pass the text value and then you don't do anything with the text - just call
alert(tickerFrame); Don't you want to pass the text along to the ticker frame as well? D
__________________
"Klaatu varada nikto!"
|
|
|
|
|
|
#5 |
|
macrumors 6502
Join Date: Sep 2005
Location: london
|
There are a few things wrong with this code.
Have you closed your <body> tag? It doesn't appear in the script here. The first thing this tries to do is set a variable tickerFrame containing the contents of your mainDiv tag with the onLoad method, which at this point is empty, so this variable's value is set to null. var tickerFrame = document.getElementById("mainDiv"); Then you try to call a function with the onLoad method, to display an alert with the text 'alex'. This function is called, but the alert is told to display the variable tickerFrame, which is null. If you want the alert to display 'alex', you need to let it display the contents of textValue, ie. alert(textValue). onLoad="setTickerBoxText('alex')" The same thing happens with the onMouseOver method. Could you explain what it is you're trying to do? We might be able to help you do it in a better way. |
|
|
|
|
|
#6 |
|
Thread Starter
macrumors 68020
|
Thanks for all the advice.
I will do all of it. I appreciate it greatly.
|
|
|
|
|
|
#7 |
|
Thread Starter
macrumors 68020
|
Thanks for the advice.
All of those problems are now fixed. But, however, I've discovered an essential problem with my code. The page is here: http://www.alexwait.com/Nortonvillea...er/index2.html When the mouse moves over the top green box, I have a function called "setBooleans" that takes a String variable... If the variable is "true" I set a global variable called "shouldContinue" to true also. This controls a while loop and prevents it from continuing on forever. When the mouseOut event fires, I send a "false" variable to the setBooleans function and I have code in there that is supposed to set shouldContinue to false . But it doesn't. I've added alert boxes to show me what's going on. And that's how I found out what is wrong. Thanks for any help. The code in question is below. Code:
function setBooleans(path)
{
alert("path = " + path);
if (path = "true") {
shouldContinue = "true";
alert("I set it to TRUE");
}
if (path = "false") {
shouldContinue = "false";
alert("I set it to FALSE");
}
:(
}
|
|
|
|
|
|
#8 |
|
Banned
Join Date: May 2001
Location: Miami
|
I learned today how easy my life is and how much sense it makes.
|
|
|
|
|
|
#9 | |
|
Thread Starter
macrumors 68020
|
Quote:
Is this spam? Please respond with helpful comments.
|
|
|
|
|
|
|
#10 |
|
macrumors 6502
Join Date: Sep 2005
Location: london
|
I think it's because you haven't the right type of equals operators- if you want to set a variable you need to use one ie. (a = 2). If you want to find out if a is exactly equal to 2, you use two together, like this: (a == 2).
Also, I don't believe you need to use quotes when writing boolean values. so in your case you should be writing: if (path == true) { etc. Try that. |
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|