webForumDet fria alternativet

funkar i explorer ej i firefox

4 svar · 516 visningar · startad av urban_hahne

urban_hahneMedlem sedan maj 2003153 inlägg
#1

Jag har gjort en utselektering från en databas som skrivs ut som länkar på en sida. När jag för markören över raderna så vill jag presentera en popupptext unik för just den raden anropet serr ut så här:
<a href="DetaljFrm.php?annonsNummer=<? echo $rad["annonsNummer"]; ?>" onMouseOver="ViewData(<? echo $IdNr; ?>,<? echo $IdNr1; ?>,'visible')" onMouseOut="ViewData(<? echo $IdNr; ?>,<? echo $IdNr1; ?>,'hidden')"><? echo $annonsRubrik; ?></a>

och den anropade funktionen:'

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function ViewData(user,urlUser,ValueShow) {
var mousex = window.event.x;
var mousey = window.event.y;
user.style.visibility = ValueShow;
user.style.left = 500 ; //mousex +20;
user.style.top = 265 ; //mousey ;
urlUser.style.visibility = ValueShow;
urlUser.style.left = 13;
urlUser.style.top = 265 ;
if (ValueShow == 'hidden') {
kartLayer.style.visibility = 'visible';
}
if (ValueShow == 'visible') {
kartLayer.style.visibility = 'hidden';
}
}
// End -->
</script>

funkar perfekt i explorer men ej i firefox, vad är fel?

tydalMedlem sedan juni 20034 013 inlägg
#2

Du kan inte bara använda title?

<a href=DetaljFrm.php?" title="Popup-texten">test</a>

Annars ska du för det första ha <script type="text/javascript">

Sen skulle jag tro att det är window.event.x som inte är standard (kanske något IE-påhitt). Jag har använt muspositioner på en sida jag gjort, och då har jag gjort så här:

e = window.event;
if (e.pageX || e.pageY)
{
  mousex = e.pageX;
  mousey = e.pageY;
}
else
{
  mousex = e.clientX + document.body.scrollLeft - document.body.clientLeft;
  mousey = e.clientY + document.body.scrollTop - document.body.clientTop;
}
voigtann1Medlem sedan juni 20019 519 inlägg
#3

vad innehåller alla dina PHP koder?

visibility är olika i de två webbläsarna:
IE: visible/hidden
FF: show/hide

Enklare att använda dig av display istället (display none): http://www.w3schools.com/css/pr_class_display.asp

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

voigtann1: Näe... Det är visible/hidden som gäller i både och. show/hide gällde väl kanske för Netscape 4?
Däremot är det så att visibility funkar lite annorlunda mot display. visibility låter dig gömma elementet, men det tar fortfarande plats:

<script>
window.onload=function(){
	document.getElementById('xxx').style.visibility = 'hidden';
}
</script>

123
<div id="xxx">456</div>
789

Ovanstående kod kommer orsaka en blank rad mellan 123 och 789.
display däremot definierar ett flertal sätt att visa ett element på, t ex inline (som föytande text) block (Fyrkantigt element) eller none (Elementet visas inte alls).

urban_hahneMedlem sedan maj 2003153 inlägg
#5

jag provade att byta ut raderna
var mousex = window.event.x;
var mousey = window.event.y;
mot
e=window.event;
var mousex = e.clientX + document.body.scrollLeft - document.body.clientLeft;
var mousey = e.clientY + document.body.scrollTop - document.body.clientTop;

för att testa i enbart firefox, men icke funkar det, vad har jag missat?

kolla http://www.allstuff.nu/köposälj/startfrm.php
i explorer för där funkar det som sagt.
För musen över texten under Bonusannonser så förstår ni hur det ska funka.

251 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
123 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)