2012-11-04 34 views
4

jQuery UI的覆蓋jQuery的positionits own,其中,因爲你可以在this fiddle看,讓我可以很容易地顯示在<div>的右上角的圖標:爲什麼jquery-ui的擴展position()方法與SVG元素一起工作?

icon.position({ 
    my: "right top", 
    at: "right top", 
    of: "div" 
}); 

然而,在案件的SVG元素(例如<rect>),我得到意想不到的行爲。例如,正如您在本測試案例中所看到的,圖標顯示在左上方,而不是右上角;如果您嘗試使用「左上方」來代替,則該圖標位於屏幕外。

我已經盡最大努力搜索了本網站和Google,但是我發現沒有提及jQuery UI的位置方法不能與SVG元素一起使用。

這是怎麼回事?

回答

0

jQuery對於SVG的工作並不是很好,特別是在處理職位時。 在SVG中,你可以有旋轉,縮放,變換矩陣和各種瘋狂的東西。如果矩形旋轉45度,會怎樣?......「右上」或「下」的含義是什麼?

http://jsfiddle.net/Qjmkc/

+0

我希望這些職位的語義是相對於有問題的元素的邊框,我猜。這在「標準」情況下按預期工作,而在「奇怪」情況下至少是確定性的。這比我在這裏看到的看似任意的行爲還好嗎? – serhalp

+0

http://bugs.jquery.com/ticket/9797 – mihai

+0

這很有趣,但不是所有相關的,因爲我們在這裏討論jQuery UI,而不是jQuery。 爲了清楚起見,我理解並完全接受,對於定位的SVG元素(例如''),jQuery UI的'position'方法的行爲將是未定義的,但我不是查看定位非SVG元素(例如'')*相對於* SVG元素的任何原因將被破壞。 – serhalp

相關問題