2013-07-31 77 views
0

HTML:closest()函數不工作,爲什麼?

<div class="slider"> 
    <div class="button-wrap"> 
     <div class="content-wrap" id="button-1">one contents</div> 
     <div class="controller"> 
      <div><a mce_href="#buttton-1" href="#buttton-1">button one </a> 
      </div> 
     </div> 
    </div> 
</div> 

的jQuery:

$('#button-1').closest('.slider').css({'left':'-1200px'}); 

這是行不通的。

我有此腳本到目前爲止

<script> 
jQuery(function($){ 
     $('#button-1').closest('.slider').css({'background':'#f00 !important'}); 
     $('#button-2').closest('.slider').css({'left':'-1200px !important'}); 
} 
</script> 
+4

定義:不工作 – Jamiec

+0

它正在工作.... –

+0

你能提供小提琴嗎? –

回答

0

.slider的元件需要具有位置absoluterelative使用left屬性進行定位。

添加以下的CSS:

.slider{ 
    position: relative; //or absolute 
} 

工作實例:http://jsfiddle.net/U96gB/

+2

有人解釋了反對票(我剛剛反駁) 。這很可能是正確的解釋。 – Faust

+0

在我的本地主機我已經添加了這個CSS .slider {position:relative;}雖然不工作。請參閱我編輯的問題腳本我正在使用。 –

0

我已經複製/粘貼你的代碼,它的工作原理:■ 確保你已經包括jQuery庫,也許你忘了position: relative;您的.slider

0

試試這個:

$('#button-1').closest('.slider').css({'margin-left':'-1200px'}); 
0

刪除!important,它在你的小提琴 - jQuery的.css()得到絆倒在那一部分。

對這個問題的一些背景知識可以在這個回答中找到:https://stackoverflow.com/a/2655976/613004

!important並不需要從樣式表超越其他風格,因爲jQuery應用使用.css()像內聯樣式的所有聲明,這將有較高的特異性比樣式表中的任何聲明更多(關於特異性計算,請參閱:https://stackoverflow.com/a/11934505/613004)。