2010-07-16 63 views
2

下面是我使用動畫一個div使用jQuery的的代碼片段:IE不承認jQuery選擇

 $('.row0').hover(function(){ 
    var markeranim = $('.marker0'); 
    var shadowanim = $('.markerShadow0') 
    var markertop = markeranim.position().top; 
    var shadowtop = shadowanim.position().top; 
    var shadowleft = shadowanim.position().left; 
     $('tr.row0').addClass('rowHoveredEven'); 
     markeranim.animate({ top: [markertop - 20 + 'px'] }, 250, 'linear', 
function() { 
        markeranim.animate({ top: [markertop + 'px'] }, 250, 'linear', 
function() { 
         markeranim.animate({ top: [markertop - 10 + 'px'] }, 200, 
'linear', function() { 
          markeranim.animate({ top: [markertop + 'px'] }, 200); 
         }); 
        }); 
       });//close animation 

這適用於所有瀏覽器很好,但IE(當然)。 IE給出了一個錯誤:「'position()。top'爲null或不是一個對象」以及:''position()。left'爲null或不是一個對象。任何人都知道爲什麼或另一種方式,我可以抓住這些IE瀏覽器會很好的屬性?

+0

你能不能發佈HTML/CSS,以便我們確認row0? – JonH 2010-07-16 21:44:06

+0

這可能是最容易檢查出來的。這是我正在開發的一個火器經銷商定位器。訪問www.axtsweapons.com,點擊左上角的登錄並輸入用戶名:「test」password:「1234」,然後進入/ ffllocator,輸入一個郵政編碼並試用。使用除IE以外的任何瀏覽器時,當您將鼠標懸停在關聯的tr上時,地圖上的標記將會生成動畫。謝謝! – abemonkey 2010-07-16 21:54:32

+0

僅供參考 - 您並不需要在$ .css() – 2010-07-17 05:31:43

回答

0

的.POSITION()尺寸插件已被棄用的1.2.6,使用的.css()代替:

var myTop = markeranim.css("top"); 
var myLeft = markeranim.css("left"); 

http://docs.jquery.com/Plugins/dimensions

+0

中附加'px'我希望獲得不分配它們的css值?這裏沒有分配你在說什麼? – abemonkey 2010-07-16 21:51:19

+0

對不起,病毒更新獲取。 – David 2010-07-16 21:53:02

+0

'.position()'不是插件,它在[jQuery core](http://api.jquery.com/position/):) – 2010-07-17 02:59:36