2010-02-09 73 views
1
<div> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    <span onmouseover="tip(event,this);">程序錯誤<div class="content">good</div></span><br> 
    </div> 

<p id="vtip" style="position:absolute"><img id="vtipArrow" src="vtip_arrow.png" />testtest<span class="content"></span></p> 

<script> 

function tip(evt,s){ 
     $('p#vtip').show(); 

     xOffset = -10; // x distance from mouse 
     yOffset = 10; // y distance from mouse 
     alert(evt.pageY+' '+evt.pageX) 
} 
</script> 

在Firefox它是好的,但 在IE8其打印 '未定義未定義'爲什麼在Firefox中可以,但在ie8中打印'undefined undefined'?

+0

你的問題是什麼? Internet Explorer給你什麼錯誤? – Russell 2010-02-09 03:22:42

+0

@russell>'undefined'表示每個座標值。 – bdl 2010-02-09 03:30:30

回答

5

如上所述,如果您要直接使用JS執行此操作,則必須對大多數瀏覽器使用pageY/pageX,對IE使用clientX/clientY。由於你使用的是jQuery(我看你有$('p#vtip')。show();在那裏),你也可以使用jQuery來綁定事件。當您使用jQuery綁定事件而不是現在使用的內聯事件時,jQuery還會標準化您跨瀏覽器訪問事件屬性的方式。

查看jQuery event docs

下面是如何以不同的方式設置html的示例。給跨度一個類,並刪除onmouseover。

<span class='tipped'>程序錯誤<div class="content">good</div></span><br> 

使用jQuery將鼠標懸停事件分配給跨度。

<script> 
    $('.tipped').mouseover(function(evt){ 
    $('p#vtip').show(); 

    xOffset = -10; // x distance from mouse 
    yOffset = 10; // y distance from mouse 
    alert(evt.pageY+' '+evt.pageX)//this should work fine in IE too, since it's a jQuerified event object 
    }); 
</script> 
1

IE使用clientX/clientY,不pageX屬性/ pageY。

2

IE不支持event.pageY/event.pageX。使用event.clientX,event.offsetX或event.x

1

事實上,VTip有一個bug,我只是沒有找到它到底在哪裏,因爲它不是100%可重現的。我可以在大約50%的時間內重現它。 我也在提示文本中得到「undefined」,但它不在html中! jQuery/vtip正在生成/顯示「未定義」文本。如果我在實際輸出上執行了查看源代碼,則標題代碼內容中會出現預期的文本,但如果將它作爲鼠標懸停,它將顯示「未定義」。 如果我重新加載頁面,它可以正常工作。所以,肯定有一個錯誤。
此外,頁面上沒有任何特定行導致「未定義」。它似乎是隨機的,它總是隻有一行。

很奇怪。仍在搜索查看誰已修復此錯誤。

+0

fyi - 這是使用FF 3.x.它也發生在IE8中。 使用jQuery 1.4.2和Vtip的最新Vs2 示例代碼: Test」> – Kelly 2011-03-25 03:08:58

相關問題