как показать jscrollPane только когда div завис

0

Я пытаюсь показать видимость jscrollpane только тогда, когда div зависает, но не работает

вот код

 $(document).ready(function(){ 
        $("#scroll").on("mouseenter", function(){
              $(this).jScrollPane();
        });

        $("#scroll").on("mouseleave", function(){
             var element = $(this).jScrollPane({});
             var api = element.data('jsp');
             api.destroy();
        });
 });



<td width="200">
        <div id="scroll" style="height:100px;overflow: auto;width: 100%;">
          <p>text -1</p>
          <p>text -2</p>
          <p>text -3</p>
          <p>text -N</p>
        </div>
</td>
  • 0
    Можно ли не просто инициализировать полосу прокрутки и скрыть это, а при наведении курсора показать полосу прокрутки.
  • 0
    С какой проблемой вы сталкиваетесь?
Показать ещё 6 комментариев
Теги:
jscrollpane

1 ответ

1
Лучший ответ

Проблема в том, что когда вы нападаете на панель прокрутки. Он заменяет ваш оригинальный div исходным содержимым, см. Фрагмент, поэтому зарегистрированное событие больше не работает. Вы можете попробовать использовать делегирование событий.

Фрагмент из панели JScroll, метод уничтожения:

        function destroy(){
            var currentY = contentPositionY(),
                currentX = contentPositionX();
            elem.removeClass('jspScrollable').unbind('.jsp');
            //See the below line
            elem.replaceWith(originalElement.append(pane.children()));
            originalElement.scrollTop(currentY);
            originalElement.scrollLeft(currentX);

            // clear reinitialize timer if active
            if (reinitialiseInterval) {
                clearInterval(reinitialiseInterval);
            }
        }

И вам не нужно повторно инициализировать его снова для деструктора, а просто просто получить доступ к data('jsp') и вызвать на нем уничтожение.

    $('table').on("mouseleave","#scroll", function(){ //Attach the event to the closest possible parent
       $(this).data('jsp').destroy();
    });

демонстрация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню