Мне нужно добавить элементы управления ползунком в заголовки аккордеона.
Мне удалось довольно хорошо смешать их вместе, используя демонстрации jQuery UI как для аккордеона, так и для слайдера.
<div id="accordion"> <div> <h3>Section 1</h3> <div class="slider" id="slider1"></div> </div> <div> <p>Mauris mauris ante</p> </div> <div> <h3>Section 2</h3> <div class="slider" id="slider2"></div> </div> <div> <p>Sed non urna.o.</p> </div> <div> <h3>Section 3</h3> <div class="slider" id="slider3"> </div> </div> <div> <p>Nam enim risus.</p> <ul> <li>List item one</li> <li>List item two</li> </ul> </div>
<script> $( "#accordion" ).accordion(); $( ".slider" ).slider({ range: true, min: 0, max: 7, values: [0, 7], step: 0.5, slide: function( event, ui ) { var id=$(this).attr('id'); $( id).val( ui.values[0] + " - " + ui.values[1] ); event.stopPropagation(); } }); $( ".slider").mouseup(); </script>
The problem is in moving a slider on an unopened accordion. Since the slider control snaps along the slide most of the time the user "mouseup"s away from slider button. This works as planned in Firefox [29.0.1], however in Chrome [35.0] a "mouseup" away from the slider button causes the accordion to open; undesired.
Закрытый аккордеон. Кнопка перемещения ползунка. Наведение курсора на кнопку ползунка.
-> Ползунок перемещается аккордеоном, но не открывается [PASS]
Закрытый аккордеон. Кнопка перемещения ползунка. Поднятие мыши с выключенным курсором кнопки ползунка, но все еще на правиле ползунка.
-> Ползунок перемещается аккордеоном, открывается [FAIL]
Закрытый аккордеон Переместите кнопку ползунка Мышь вверх с выключенным курсором из аккордеона
-> Ползунок перемещается аккордеоном, но не открывается [PASS]
Поскольку он работает для Firefox, но не для Chrome (и IE), я думаю, что это, вероятно, ошибка jQuery/jQuery-ui, я довольно много узнал об этой проблеме, я могу упустить что-то очевидное, есть ли быстрое решение, которое я могу использовать, чтобы обойти это? Или это щель в том, как jQuery работает над особенностями браузера.