diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-08-18 19:41:18 -0500 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-08-18 19:41:18 -0500 |
commit | 4d07319b38b20609b385aa9510001b203f5b1224 (patch) | |
tree | 594dd6b1a64d276a93c2497c8d46452cde430cf8 /app/assets/javascripts/member_expiration_date.js | |
parent | 41529b925437b20206d00ea0e1fd82b144b8e513 (diff) | |
download | gitlab-ce-4d07319b38b20609b385aa9510001b203f5b1224.tar.gz |
Don’t add events in loop
Diffstat (limited to 'app/assets/javascripts/member_expiration_date.js')
-rw-r--r-- | app/assets/javascripts/member_expiration_date.js | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/app/assets/javascripts/member_expiration_date.js b/app/assets/javascripts/member_expiration_date.js index cb166024b59..1935af491f7 100644 --- a/app/assets/javascripts/member_expiration_date.js +++ b/app/assets/javascripts/member_expiration_date.js @@ -5,30 +5,28 @@ // datepicker, and make clicking on that element clear the field. // gl.MemberExpirationDate = function() { - $('.js-access-expiration-date').each(function(i, element) { - var expirationDateInput = $(element); + function toggleClearInput() { + $(this).closest('.clearable-input').toggleClass('has-value', $(this).val() !== ''); + } - if (expirationDateInput.hasClass('hasDatepicker')) { return; } + var inputs = $('.js-access-expiration-date'); - function toggleClearInput() { - expirationDateInput.closest('.clearable-input').toggleClass('has-value', expirationDateInput.val() !== ''); - } + inputs.datepicker({ + dateFormat: 'yy-mm-dd', + minDate: 1, + onSelect: toggleClearInput + }); - expirationDateInput.datepicker({ - dateFormat: 'yy-mm-dd', - minDate: 1, - onSelect: toggleClearInput - }); + inputs.next('.js-clear-input').on('click', function(event) { + event.preventDefault(); - expirationDateInput.on('blur', toggleClearInput); + var input = $(this).closest('.clearable-input').find('.js-access-expiration-date'); + input.datepicker('setDate', null); + toggleClearInput.call(input); + }); - toggleClearInput(); + inputs.on('blur', toggleClearInput); - expirationDateInput.next('.js-clear-input').on('click', function(event) { - event.preventDefault(); - expirationDateInput.datepicker('setDate', null); - toggleClearInput(); - }); - }); + inputs.each(toggleClearInput); }; }).call(this); |