2012-06-07 35 views
12

我有一個絕對定位的元素,我在jQuery的幫助下使用CSS屬性「左」移動。未在Safari中應用jQuery樣式

$("#element").css('left', '103px'); 

在Firefox中,按預期工作。但是在Safari中,我可以看到element.style下出現在Web Inspector中的樣式,但樣式不會更新。如果我禁用(並重新啓用)任何匹配的CSS規則(即使那些不直接應用於我的div),將呈現應用jQuery的樣式。

我在舊的PowerMac上運行Safari 5.0.6,使用jQuery 1.7.2。

+0

如何用left添加一個類:103px;給你CSS和做$('emelent')。addClass('left_class'); ?這會有所不同嗎? – Robert

+0

如果它在CSS中起作用,但我希望能夠使用jQuery移動元素,但它不起作用。 –

+0

我已經將問題追溯到這個絕對定位的父元素。如果我將它設置爲相對定位,它將呈現jQuery應用樣式。 –

回答

-1

那麼它爲我的作品在Safari 5.1.7

根據我的經驗時的.css()失敗,我試着用.animate()0作爲時間(即時)

嘗試這樣的事情和讓我知道它的工作(測試在Safari 5.1.7和工作)

 $(document).ready(function(){ 
      $("#element").animate({ 
       left: '+=103px' 
      }, 0); 
     }); 
11

我曾經面臨過這樣的問題,我最終使用addClass與removeClass對元素的父容器。

試試這個

$("#element").css('left', '103px').parent().addClass("dummyClass").removeClass("dummyClass"); 

如果不工作follwoing將肯定工作。

$("#element").css('left', '103px'); 
$("body").addClass("dummyClass").removeClass("dummyClass"); 

問題有時野生動物園當我們改變CSS不重繪頁面,所以我們需要強制重繪

+0

哥們,你是救命恩人! $(「body」)。addClass(「dummyClass」)。removeClass(「dummyClass」);作品 – AdamV

+1

很高興它幫助你。是的,有些時候直接父母不會造成問題,所以你需要升級。通常身體解決問題。唯一的情況下,我看到在身體上添加類不起作用的是,當你有td中的元素,在這種情況下,你需要添加/刪除類或某些時候添加/刪除td屬性對齊。 – gaurang171

0

!重要的應該做的伎倆

$("#element").css('left', '103px !important'); 
0

我有一個類似的問題實施視頻進度條。我想放置的元素放在DIV中,並帶有'display:table-caption';'在閱讀td元素的@ gaurang171評論後,我最終不得不從div表中刪除該元素並設置'display:block'。並且元素位置被更新而不需要dummyClass。一個帶有display:block的div在表格中不起作用,它必須完全在表格之外。