Jesper TMedlem sedan nov. 20017 144 inlägg I mitt lilla "högerklicksmenyscript" så skulle jag vilja få med mig div id:et i länkarna (querystrings). Alltså klickar jag på div 1, så skall detta id stå med i länken/arna i högerklicksmenyn. Hur gör jag det?
<style>
.hSmellCell {
font-family:arial;
background-color:#cccccc;
font-size:10pt;
cursor:default;
margin:1px;
}
.hSmellOver {
font-family:arial;
background-color:#999999;
font-size:10pt;
cursor:default;
margin:1px;
}
</style>
<script language="javascript">
<!--
function tMenu(a) {
var X = event.clientX;
X += document.body.scrollLeft;
var Y = event.clientY;
Y += document.body.scrollTop;
hSmellMenu.style.left=X;
hSmellMenu.style.top=Y;
if(a) {
hSmellMenu.style.display = 'block';
} else {
hSmellMenu.style.display = 'none';
}
return false;
}
function cColor(o) {
if (o.className == 'hSmellOver') {
o.className = 'hSmellCell';
} else {
o.className = 'hSmellOver';
}
}
function goMenu(str) {
window.location.href = str;
}
//-->
</script>
</head>
<Body>
<div oncontextmenu="return tMenu(true);" onClick="tMenu(false);" id="1" style="border:1px solid blue;width:200px; height:20px;">1</div>
<div oncontextmenu="return tMenu(true);" onClick="tMenu(false);" id="2" style="border:1px solid blue;width:200px; height:20px;">2</div>
<div oncontextmenu="return tMenu(true);" onClick="tMenu(false);" id="3" style="border:1px solid blue;width:200px; height:20px;">3</div>
<div id="hSmellMenu" style="border:1px groove #999999;display:none;position:absolute;background-color:#cccccc;margin:1px;">
<div class="hSmellCell" onMouseOver="cColor(this);" onMouseOut="cColor(this);" onClick="javascript:goMenu('/htmlp.asp')">
html</div>
<div class="hSmellCell" onMouseOver="cColor(this);" onMouseOut="cColor(this);" onClick="javascript:goMenu('http://www.dhtml.net')">
dhtml</div>
</div>
Tips?
Peter SMedlem sedan dec. 20025 483 inlägg Skicka med en till in-parameter till funktionen tMenu(), d.v.s. en referens till objektet i fråga:
...
function tMenu(a, [b]o[/b]) {
[b]alert(o);[/b]
var X = event.clientX;
X += document.body.scrollLeft;
var Y = event.clientY;
Y += document.body.scrollTop;
hSmellMenu.style.left=X;
hSmellMenu.style.top=Y;
if(a) {
hSmellMenu.style.display = 'block';
} else {
hSmellMenu.style.display = 'none';
}
return false;
}
...
<div oncontextmenu="return tMenu(true, [b]this.id[/b])...
...
:)
Jesper TMedlem sedan nov. 20017 144 inlägg ...men, men, hur får jag "ner" aktuell div:s id till högerklicksmenyn?
om jag skriver:<script>document.write(objId);</script>
Så står det att variabeln är odefinerad.
Så här skulle jag önska att det såg ut:

Peter SMedlem sedan dec. 20025 483 inlägg Vet inte riktigt om det är så här du menar, men...
<script language="javascript">
<!--
var menu1 = ["Redigera","Radera"];
function tMenu(a, o) {
var hSmellMenu = document.getElementById("hSmellMenu");
var subs = hSmellMenu.getElementsByTagName("div");
for(var i=0; i<subs.length; i++){
subs[i].innerHTML = menu1[i] + " " + o;
}
var X = event.clientX;
X += document.body.scrollLeft;
var Y = event.clientY;
Y += document.body.scrollTop;
hSmellMenu.style.left=X;
hSmellMenu.style.top=Y;
if(a) {
hSmellMenu.style.display = 'block';
} else {
hSmellMenu.style.display = 'none';
}
return false;
}
function cColor(o) {
if (o.className == 'hSmellOver') {
o.className = 'hSmellCell';
} else {
o.className = 'hSmellOver';
}
}
function goMenu(str) {
window.location.href = str;
}
//-->
</script>
...
<div oncontextmenu="return tMenu(true, this.id);" onClick="tMenu(false);" id="1" style="border:1px solid blue;width:200px; height:20px;">1</div>
<div oncontextmenu="return tMenu(true, this.id);" onClick="tMenu(false);" id="2" style="border:1px solid blue;width:200px; height:20px;">2</div>
<div oncontextmenu="return tMenu(true, this.id);" onClick="tMenu(false);" id="3" style="border:1px solid blue;width:200px; height:20px;">3</div>
<div id="hSmellMenu" style="border:1px groove #999999;display:none;position:absolute;background-color:#cccccc;margin:1px;">
<div class="hSmellCell" onMouseOver="cColor(this);" onMouseOut="cColor(this);" onClick="javascript:goMenu('/htmlp.asp')">
Redigera</div>
<div class="hSmellCell" onMouseOver="cColor(this);" onMouseOut="cColor(this);" onClick="javascript:goMenu('http://www.dhtml.net')">
Radera</div>
</div>
...
:)
Jesper TMedlem sedan nov. 20017 144 inlägg Nästan, länkarna skall ha en querystring med motsvarande id.
ex lank.asp?Id=1
Peter SMedlem sedan dec. 20025 483 inlägg Så här?
...
for(var i=0; i<subs.length; i++){
subs[i].innerHTML = menu1[i] + " " + o;
subs[i].onclick = function(){
location.href = "lank.asp?id=" + o;
}
}
...
:)
Jesper TMedlem sedan nov. 20017 144 inlägg Aaaa, men då får båda länkarna(redigera,radera) samma url ju :(
Peter SMedlem sedan dec. 20025 483 inlägg Testa följande:
...
for(var i=0; i<subs.length; i++){
subs[i].innerHTML = menu1[i] + " " + o;
subs[i].onclick = function(){
goMenu(this.innerHTML.toLowerCase().substring(0, this.innerHTML.indexOf(" "))+".asp?id="+o);
}
}
...
:)