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 () {
1074510745 var isManualInput = false;
1074610746 var valueBeforeManualInput;
1074710747
1074810748 $(document).on('input', '.range-block-counter input, .neo-range-input').on('click', function () {
1074910749 valueBeforeManualInput = $(this).val();
1075010750 console.log(valueBeforeManualInput);
1075110751 });
10752- .on('change', function (e) {
10752+
10753- e.target.focus();
10753+ $(document).on('change', '.range-block-counter input, .neo-range-input', function (e) {
1075410754 e.target.dispatchEvent(new Eventfocus('keyup'));
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');
1076010760 let const manualInputmasterElement = Number($(this).val()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);
1078810762 let manualInput = Number($(this).val());
1078910763 if (isManualInput) {
1079010764 //ifdisallow valuemanual isinputs betweenoutside correctacceptable range for the slider
1079110765 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');
1079210769 valueBeforeManualInput = manualInput;
10793- //set the slider value to input value
1079410770 $(masterElement).val($(this).val()).trigger('input', { forced: true });
1079510771 } else {
1079610772 //if value not ok, warn and reset to last known valid value
1079710773 toastr.warning(`Invalid value. Must be between ${$(this).attr('min')} and ${$(this).attr('max')}`);
1079810774 console.log(valueBeforeManualInput);
10775+ //newSlider.val(valueBeforeManualInput)
1079910776 $(this).val(valueBeforeManualInput);
1080010777 }
1080110778 }
10802- isManualInput = false;
10779+ }
1080310780 });
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
1080510809 $('.user_stats_button').on('click', function () {
1080610810 userStatsHandler();