2015-07-10 60 views
0

我想perfect-scrollbar插件(這給美麗的滾動條,而不是瀏覽器的默認滾動條)添加到一個jQuery UI selectmenu完美,滾動條不正確地應用到jQuery UI的selectmenu

這是JSFIDDLE

當我打開selectmenu時,滾動條不顯示(即使我將鼠標懸停在列表中),直到我將鼠標移到列表底部(這意味着:第一次打開選擇菜單時,它會給人一種感覺沒有其他項目,因爲滾動條不在那裏)

任何想法如何解決這個問題?

HTML

<select name="number" id="number"> 
     <option>1</option> 
     <option selected="selected">2</option> 
     <option>3</option> 
     <option>4</option> 
     <option>5</option> 
     <option>6</option> 
     <option>7</option> 
     <option>8</option> 
     <option>9</option> 
     <option>10</option> 
     <option>11</option> 
     <option>12</option> 
     <option>13</option> 
     <option>14</option> 
     <option>15</option> 
     <option>16</option> 
     <option>17</option> 
     <option>18</option> 
     <option>19</option> 
</select> 

JS

$(function(){  
    $("#number").selectmenu().selectmenu("menuWidget").addClass("overflow").perfectScrollbar(); 
}); 

CSS

#number{ 
    width: 220px; 
} 
.overflow{ 
    height: 200px; 
    position: relative; 
} 

回答

0

回答我的問題是: 我的理解,我們運用完美,滾動條給它的元素應該有一個明確的高度(100%或400px或其他),這沒關係,我已經添加一類溢出,高度添加到列表中

$("#number").selectmenu().selectmenu("menuWidget").addClass("overflow") 

然後我申請perfectScrollbar()功能到該列表,但它仍然是隱藏的,這就是問題所在

jQuery是無法計算的高度如果它是一個元素隱藏(即使它有一個高度 CSS屬性集)看着jQuery UI的selectmenu DOCUME後

所以ntation我能找到一個open事件,列表打開

$("#number").selectmenu({ 
    open: function(event, ui) { 
     $("#number").selectmenu("menuWidget").addClass("overflow").perfectScrollbar(); 
    } 
}) 

的代碼做什麼是簡單的時候,我們可以用它來做些什麼,它應用perfectScroll()方法列表被打開後,才和jQuery是能夠讀取身高

我希望這可以幫助某人在相同的情況下。