Я хочу построить график внутри аккордеона jQuery, но он заставит график расколоться и масштабируемые изображения. Кто-нибудь получил за это право?График jqPlot в аккордеоне
ответ
Как объясняется на странице jqPlot Tab and Accordion UI Widgets, jqPlot должен знать размер графика при его построении, и он не может этого сделать, если диаграмма скрыта на аккордеоне или вкладке. Решение состоит в том, чтобы либо указать размеры диаграммы альтернативным способом, либо вызвать replot
, когда аккордеон будет расширен. См. Tab and Accordion UI Widgets для получения полной информации и кода примера.
Все в аккордеоне скрыто до тех пор, пока оно не будет расширено, что означает, что оно безразмерное. Вам нужно подождать, пока не будет показана часть DOM, на которой находится ваша аккордеонная диаграмма, а затем постройте график. Если вы посмотрите на ui.html пример включен в последней версии jqPlot, вы увидите это:
Здесь сюжет создается в DIV с именем chart1, который находится внутри скрытой JQuery UI вкладки:
plot1 = $.jqplot('chart1', [l1, l2, l3], {
title: "I was hidden",
lengend:{show:true},
series:[{},{yaxis:'y2axis'}, {yaxis:'y3axis'}],
cursor:{show:true, zoom:true},
axesDefaults:{useSeriesColor:true}
});
А затем обработчик события зарегистрирован в событии 'tabsshow', запущенном вкладкой пользовательского интерфейса jQuery. В вашем случае вы захотите зарегистрировать обработчик для события «accordionchange», запущенного виджетами jQuery UI Accordion после завершения изменения состояния аккордеона. Вот как вы связываете с «tabsshow» события на вкладке для приведенного выше примера кода:
$('#tabs').bind('tabsshow', function(event, ui) {
if (ui.index == 1 && plot1._drawCount == 0) {
plot1.replot();
}
else if (ui.index == 2 && plot2._drawCount == 0) {
plot2.replot();
}
});
Там также рабочий пример в том же ui.html файл с гармошкой. Вы можете найти пример в последней версии от bitbucket здесь: jqplot.1.0.0a_r701
Кроме того, убедитесь, что вы не создаете экземпляр нескольких объектов jqPlot в одном и том же div или у вас будут участки, расположенные друг над другом и перегруженные браузера.
По какой-то причине 'ui.index == #' не работает для меня. На сайте jquery они используют 'ui.index === #'. Опять же, это не сработало для меня, поэтому я использовал 'ui.newHeader.text() ==" JQPlot "' (я использую jquery 1.9.1, jui 1.10.3 и jqplot 1.0.8). Надеюсь, эта информация поможет кому-то – Chopo87
Скрытые элементы, как вкладки или аккордеон элемент не имеют размера, так что вы можете использовать технику, указанную в документации jqplot, то есть .:
- обеспечить размеры графа в качестве альтернативного способа (например, атрибуты высоты данных и ширины данных) И
- call replot() при отображении графика.
Однако в примере в документации используется для 2. имя события, которое может быть неправильным в вашей версии jquery-ui. Например, если вы используете Bootstrap 3, соответствующее событие имеет другое имя: «показано.bs.tab».
Ссылки:
Ответы, которые содержат ссылки, считаются плохой практикой (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers). Пожалуйста, суммируйте содержание здесь (не копируйте/вставляйте), поэтому ответ может стоять сам по себе.Если вы этого не сделаете, вы рискуете удалить свой ответ, особенно если связь когда-либо умирает. –
- 1. График JQplot [значение, описание]
- 2. График JQPlot не отображается
- 3. jqPlot почасовой график
- 4. Показать групповой график в jqplot
- 5. График стандартного отклонения в jqplot
- 6. JQPlot дата оси не график график
- 7. График строки jqPlot с разрывами
- 8. jqPlot Диаграмма график строка вопрос
- 9. Как разбить график в линейной диаграмме jqplot
- 10. jqplot bar и линейный график, где линейный график находится за
- 11. MVC jQPlot JSON dataRenderer не строит график
- 12. JQplot: пустой график при печати IE
- 13. jqplot генерировать график, используя возвращаемые функции функции
- 14. Участок jqplot график из данных JSon
- 15. jqPlot График данных диаграммы не отображается
- 16. Хранить настройки jqplot на Replot() график
- 17. jqPlot график с увеличением в течение 31 дня
- 18. Не удалось нарисовать график, используя jqplot в приложении Android phonegap
- 19. Как я могу ограничить количество тиков в jqplot (линейный график)?
- 20. Прокрутка в jqPlot
- 21. доступ div в аккордеоне
- 22. Позиция кнопки в аккордеоне
- 23. Скрытие проема в аккордеоне
- 24. Кнопка обновления в Аккордеоне
- 25. Как построить график jqplot внутри приложения phonegap для Android
- 26. jqplot не отображает график при использовании пользовательского tickRenderer (CanvasAxisTickRenderer)
- 27. не может отобразить простой график с использованием jqplot
- 28. Как показать график JqPlot Дата с использованием MVC4
- 29. Redrawing jqPlot
- 30. Можно ли сделать этот график с помощью jqplot?
код? Что ты пробовал? Что не удалось? Как почему? – jitter