Browse Source

Suppress firing toggle event, if toggle status is not changed

pull/801/head
dots111 9 years ago
parent
commit
2f4799fa07
  1. 21
      js/toggles.js

21
js/toggles.js

@ -94,7 +94,8 @@
var toggleWidth = toggle.clientWidth; var toggleWidth = toggle.clientWidth;
var handleWidth = handle.clientWidth; var handleWidth = handle.clientWidth;
var offset = (toggleWidth - handleWidth); var offset = (toggleWidth - handleWidth);
var slideOn = (!touchMove && !toggle.classList.contains('active')) || (touchMove && (distanceX > (toggleWidth / 2 - handleWidth / 2))); var originOn = toggle.classList.contains('active');
var slideOn = (!touchMove && !originOn) || (touchMove && (distanceX > (toggleWidth / 2 - handleWidth / 2)));
if (slideOn) { if (slideOn) {
handle.style[transformProperty] = 'translate3d(' + offset + 'px,0,0)'; handle.style[transformProperty] = 'translate3d(' + offset + 'px,0,0)';
@ -104,15 +105,17 @@
toggle.classList[slideOn ? 'add' : 'remove']('active'); toggle.classList[slideOn ? 'add' : 'remove']('active');
e = new CustomEvent('toggle', { if (originOn != slideOn) {
detail: { e = new CustomEvent('toggle', {
isActive: slideOn detail: {
}, isActive: slideOn
bubbles: true, },
cancelable: true bubbles: true,
}); cancelable: true
});
toggle.dispatchEvent(e); toggle.dispatchEvent(e);
}
touchMove = false; touchMove = false;
toggle = false; toggle = false;

Loading…
Cancel
Save