ShawnMolloy
MIS
For some reason, I can not assign a value to the var "mp3Id" in my code below. Can anyone help me out in debugging this?
this script makes a pop up menu appear, and then writing in the array called mp3Menu as the menu item. I want to pass in a ID to this array, but its not defined in the function, as you can see, so its making it diffiucult.
Shawn Molloy
Seattle, WA
this script makes a pop up menu appear, and then writing in the array called mp3Menu as the menu item. I want to pass in a ID to this array, but its not defined in the function, as you can see, so its making it diffiucult.
Code:
<script type="text/javascript">
// This is the var i want to assign to:
var _mp3Id = "0";
var mp3Menu=new Array()
mp3Menu[0]='<a href="listen.aspx?id='+_mp3Id+'"><img class="menuIcon">Listen</a>'
mp3Menu[0]+='<a href="details.aspx?id='+_mp3Id+'"><img class="menuIcon"> View Details</a>'
function showmenu(e, which, optWidth, mp3Id){
// this is my main problem. I am trying to assign the parameter to the local var defined up there. but when the pop up menu appears the "mp3Id" i created stays at "0"
_mp3Id = mp3Id;
// the below code controls the div that opens for the menu and is inconsequential
if (!document.all&&!document.getElementById)
return
clearhidemenu()
menuobj=ie5? document.all.popitmenu : document.getElementById("popitmenu")
menuobj.innerHTML=which
menuobj.style.width=(typeof optWidth!="undefined")? optWidth : defaultMenuWidth
menuobj.contentwidth=menuobj.offsetWidth
menuobj.contentheight=menuobj.offsetHeight
eventX=ie5? event.clientX : e.clientX
eventY=ie5? event.clientY : e.clientY
//Find out how close the mouse is to the corner of the window
var rightedge=ie5? iecompattest().clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie5? iecompattest().clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px"
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px"
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px"
else
menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+"px" : window.pageYOffset+eventY+"px"
menuobj.style.visibility="visible"
return false
}
Shawn Molloy
Seattle, WA