Add event handlers for dynamically added neo-range-inputs

d6e7fd78adfcecdb0bca84471702b5d978f9d2b9

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +46 -42Ignore whitespace
public/script.js+46 -42
@@ -10745,62 +10745,66 @@ jQuery(async function () {
10745 var isManualInput = false;10745 var isManualInput = false;
10746 var valueBeforeManualInput;10746 var valueBeforeManualInput;
1074710747
10748 $('.range-block-counter input, .neo-range-input').on('click', function () {10748 $(document).on('input', '.range-block-counter input, .neo-range-input', function () {
10749 valueBeforeManualInput = $(this).val();10749 valueBeforeManualInput = $(this).val();
10750 console.log(valueBeforeManualInput);10750 console.log(valueBeforeManualInput);
10751 })10751 });
10752 .on('change', function (e) {10752
10753 e.target.focus();10753 $(document).on('change', '.range-block-counter input, .neo-range-input', function (e) {
10754 e.target.dispatchEvent(new Event('keyup'));10754 e.target.focus();
10755 })10755 e.target.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true }));
10756 .on('keydown', function (e) {10756 });
10757 const masterSelector = '#' + $(this).data('for');10757
10758 const masterElement = $(masterSelector);10758 $(document).on('keydown', '.range-block-counter input, .neo-range-input', function (e) {
10759 if (e.key === 'Enter') {10759 const masterSelector = '#' + $(this).data('for');
10760 let manualInput = Number($(this).val());10760 const masterElement = $(masterSelector);
10761 if (isManualInput) {10761 if (e.key === 'Enter') {
10762 //disallow manual inputs outside acceptable range
10763 if (manualInput >= Number($(this).attr('min')) && manualInput <= Number($(this).attr('max'))) {
10764 //if value is ok, assign to slider and update handle text and position
10765 //newSlider.val(manualInput)
10766 //handleSlideEvent.call(newSlider, null, { value: parseFloat(manualInput) }, 'manual');
10767 valueBeforeManualInput = manualInput;
10768 $(masterElement).val($(this).val()).trigger('input', { forced: true });
10769 } else {
10770 //if value not ok, warn and reset to last known valid value
10771 toastr.warning(`Invalid value. Must be between ${$(this).attr('min')} and ${$(this).attr('max')}`);
10772 console.log(valueBeforeManualInput);
10773 //newSlider.val(valueBeforeManualInput)
10774 $(this).val(valueBeforeManualInput);
10775 }
10776 }
10777 }
10778 })
10779 .on('keyup', function () {
10780 valueBeforeManualInput = $(this).val();
10781 console.log(valueBeforeManualInput);
10782 isManualInput = true;
10783 })
10784 //trigger slider changes when user clicks away
10785 .on('mouseup blur', function () {
10786 const masterSelector = '#' + $(this).data('for');
10787 const masterElement = $(masterSelector);
10788 let manualInput = Number($(this).val());10762 let manualInput = Number($(this).val());
10789 if (isManualInput) {10763 if (isManualInput) {
10790 //if value is between correct range for the slider10764 //disallow manual inputs outside acceptable range
10791 if (manualInput >= Number($(this).attr('min')) && manualInput <= Number($(this).attr('max'))) {10765 if (manualInput >= Number($(this).attr('min')) && manualInput <= Number($(this).attr('max'))) {
10766 //if value is ok, assign to slider and update handle text and position
10767 //newSlider.val(manualInput)
10768 //handleSlideEvent.call(newSlider, null, { value: parseFloat(manualInput) }, 'manual');
10792 valueBeforeManualInput = manualInput;10769 valueBeforeManualInput = manualInput;
10793 //set the slider value to input value
10794 $(masterElement).val($(this).val()).trigger('input', { forced: true });10770 $(masterElement).val($(this).val()).trigger('input', { forced: true });
10795 } else {10771 } else {
10796 //if value not ok, warn and reset to last known valid value10772 //if value not ok, warn and reset to last known valid value
10797 toastr.warning(`Invalid value. Must be between ${$(this).attr('min')} and ${$(this).attr('max')}`);10773 toastr.warning(`Invalid value. Must be between ${$(this).attr('min')} and ${$(this).attr('max')}`);
10798 console.log(valueBeforeManualInput);10774 console.log(valueBeforeManualInput);
10775 //newSlider.val(valueBeforeManualInput)
10799 $(this).val(valueBeforeManualInput);10776 $(this).val(valueBeforeManualInput);
10800 }10777 }
10801 }10778 }
10802 isManualInput = false;10779 }
10803 });10780 });
10781
10782 $(document).on('keyup', '.range-block-counter input, .neo-range-input', function () {
10783 valueBeforeManualInput = $(this).val();
10784 console.log(valueBeforeManualInput);
10785 isManualInput = true;
10786 });
10787
10788 //trigger slider changes when user clicks away
10789 $(document).on('mouseup blur', '.range-block-counter input, .neo-range-input', function () {
10790 const masterSelector = '#' + $(this).data('for');
10791 const masterElement = $(masterSelector);
10792 let manualInput = Number($(this).val());
10793 if (isManualInput) {
10794 //if value is between correct range for the slider
10795 if (manualInput >= Number($(this).attr('min')) && manualInput <= Number($(this).attr('max'))) {
10796 valueBeforeManualInput = manualInput;
10797 //set the slider value to input value
10798 $(masterElement).val($(this).val()).trigger('input', { forced: true });
10799 } else {
10800 //if value not ok, warn and reset to last known valid value
10801 toastr.warning(`Invalid value. Must be between ${$(this).attr('min')} and ${$(this).attr('max')}`);
10802 console.log(valueBeforeManualInput);
10803 $(this).val(valueBeforeManualInput);
10804 }
10805 }
10806 isManualInput = false;
10807 });
1080410808
10805 $('.user_stats_button').on('click', function () {10809 $('.user_stats_button').on('click', function () {
10806 userStatsHandler();10810 userStatsHandler();