2013-11-12 6 views
1

Я видел ответы здесь о том, как это сделать, но я просто не могу заставить его работать. Возможно, другой набор глаз поможет. Я пытаюсь заставить полосу прокрутки появляться в div, который появляется при щелчке изображения. Вот код для этого: ('modalcs' это имя DIV, который выскакивает)mCustomScrollbar отображение прокрутки на скрытом div

И функции:

function update_scroll(theID) 
{ 
    document.getElementById(theID).style.display = 'block'; 
    $(".scrollable").mCustomScrollbar("update"); 
} 

В моей $(document).ready(function() у меня есть:

$(".scrollable").mCustomScrollbar({ 
    theme:"dark-thick", 
    scrollButtons:{ 
    enable:true, 
    advanced:{ 
    updateOnBrowserResize:true, 
    updateOnContentResize:true 
    } 
} 
}); 

и я понимаю, что при загрузке страницы, поскольку скрытый div не отображается, полоса прокрутки не может видеть ее содержимое.

TIA за помощь!

+1

Спасибо @Prateek для редактирования. Это мой первый пост! Ваше редактирование, безусловно, красивее моего. :) –

ответ

1

Проблема заключается в том, что команда «update» не работает с коллекцией, поэтому, если $ («. Scrollable») возвращает более одного элемента, он обновит только первый. Используйте $.each

$(".scrollable").each(function(){ 
    $(this).mCustomScrollbar("update"); 
}); 

С другой стороны, так как вы работаете на 1 элемент, вы можете просто изменить свою функцию:

function update_scroll(theID) 
{ 
    $('#' + theID).show().mCustomScrollbar("update"); 
} 
+0

Спасибо @ Darhazer! Ваше решение не совсем сработало для меня, но это привело меня в правильное направление. Я закончил использование: function update_scroll (theID) { $ ('#' + theID) .show(); $ (". Прокручиваемый"). MCustomScrollbar ("update"); } –

Смежные вопросы