sS hjs_selectizeClickable() { ret hjs([[ Selectize.define('clickable', function(options) { var self = this; var setup = self.setup; this.setup = function() { setup.apply(self, arguments); var clicking = false; // Detect click on a .clickable self.$dropdown_content.on('mousedown click', function(e) { if ($(e.target).hasClass('clickable')) { if (e.type === 'mousedown') { clicking = true; self.isFocused = false; // awful hack to defuse the document mousedown listener } else { self.isFocused = true; setTimeout(function() { clicking = false; // wait until blur has been preempted }); } } else { // cleanup in case user right-clicked or dragged off the element clicking = false; self.isFocused = true; } }); // Intercept default handlers self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function() { if (!clicking) { return self.onOptionSelect.apply(self, arguments); } }); self.$control_input.off('blur').on('blur', function() { if (!clicking) { return self.onBlur.apply(self, arguments); } }); } }); ]]); }