Sha256: 0fbe6627b74e64eee9906b3ee0f6c979038a4c03a0f6ed53f3b6ae546bdfbbc7
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
(function(ko, $) { "use strict"; ko.bindingHandlers.dropdown = { init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { var $element = $(element), templateName = ko.unwrap(valueAccessor()), dropdownContext = allBindingsAccessor().dropdownContext || bindingContext, options, defaultOptions, contentCallback; defaultOptions = { allowParallelUse: false, appendTo: 'afterElement', popoverClass: '', position: 'center bottom' }; options = $.extend({}, defaultOptions, allBindingsAccessor().attacheOptions); options.popoverClass = options.popoverClass + ' dropdown'; contentCallback = function(anchor, popover) { ko.renderTemplate(templateName, dropdownContext, {}, popover.get(0)); }; $element.attache(options); $element.attache().addCallback('afterCreate', contentCallback); $element.on('click', function(ev) { if ($element.attache().isActive()) { $element.attache().hide(); } else { $element.attache().show(); $('body').one('click', function() { $element.attache().hide(); } ); } ev.stopPropagation(); }); ko.utils.domNodeDisposal.addDisposeCallback(element, function() { try { $(element).attache().destroy(); } catch (e) { } }); } }; })(ko, $);
Version data entries
3 entries across 3 versions & 1 rubygems