- Posts: 19
- Thank you received: 1
Ask the community, share ideas, and connect with other LimeSurvey users!
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ // Identify this question var thisQuestion = $('#question{QID}'); $('body').on('slide slideStop', '#question{QID} input.answer-item', function(event) { var thisName = $(this).attr('name').replace('slid', ''); var otherSlider = $('input.answer-item', thisQuestion).filter(function () { return $(this).attr('name').replace('slid', '') != thisName; }).first(); var psSeparator = $(this).attr('data-ps-separator'); var psStep = $(this).attr('data-ps-step'); var sliderVal = Number($(this).val().replace(psSeparator, '.')); // Move the slider var otherName = $(otherSlider).attr('name').replace('slid', ''); window.activeSliders['s'+otherName].getSlider().setValue(100-sliderVal); // Handle the inputs var displayValue = $(otherSlider).val().toString().replace('.', psSeparator); $(otherSlider).val(displayValue); $(otherSlider).closest('li.answer-item').find('input.em_sq_validation').val(displayValue); // Fire Expression Manager ExprMgr_process_relevance_and_tailoring('keyup', otherName, 'change'); }); }); </script>
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ // Identify this question var qID = '{QID}'; // Add a custom event handler to the slider inputs $('body').on('slide.custom slideStop.custom', '#question'+qID+' input.answer-item', function(event) { handleSliders($(this)); }); function handleSliders(el) { // Remove the custom event handlers to prevent recursion (looping) $('body').off('slide.custom slideStop.custom', '#question'+qID+' input.answer-item'); var thisName = $(el).attr('name').replace('slid', ''); var otherSlider = $('#question'+qID+' input.answer-item').filter(function () { return $(this).attr('name').replace('slid', '') != thisName; }).first(); var psSeparator = $(el).attr('data-ps-separator'); var psStep = $(el).attr('data-ps-step'); var sliderVal = Number($(el).val().replace(psSeparator, '.')); // Move the slider var otherName = $(otherSlider).attr('name').replace('slid', ''); window.activeSliders['s'+otherName].getSlider().setValue(100-sliderVal); // Handle the inputs var displayValue = $(otherSlider).val().toString().replace('.', psSeparator); $(otherSlider).val(displayValue); $(otherSlider).closest('li.answer-item').find('input.em_sq_validation').val(displayValue); $(otherSlider).closest('li.answer-item').find('.slider').removeClass('slider-untouched'); // Fire Expression Manager ExprMgr_process_relevance_and_tailoring('keyup', otherName, 'change'); // Now, re-add the custom event handler to the slider inputs $('body').on('slide.custom slideStop.custom', '#question'+qID+' input.answer-item', function(event) { handleSliders($(this)); }); } }); </script>