mirror of
https://github.com/wintercms/winter.git
synced 2024-06-28 05:33:29 +02:00
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
/*
|
|
* Balloon selector control.
|
|
*
|
|
* Data attributes:
|
|
* - data-control="balloon-selector" - enables the plugin
|
|
*
|
|
*/
|
|
+function ($) { "use strict";
|
|
|
|
var BalloonSelector = function (element, options) {
|
|
|
|
this.$el = $(element)
|
|
this.$field = $('input', this.$el)
|
|
|
|
this.options = options || {};
|
|
|
|
var self = this;
|
|
$('li', this.$el).click(function(){
|
|
if (self.$el.hasClass('control-disabled'))
|
|
return
|
|
|
|
$('li', self.$el).removeClass('active')
|
|
$(this).addClass('active')
|
|
self.$field.val($(this).data('value'))
|
|
self.$el.trigger('change')
|
|
})
|
|
}
|
|
|
|
BalloonSelector.DEFAULTS = {}
|
|
|
|
// BALLOON SELECTOR PLUGIN DEFINITION
|
|
// ===================================
|
|
|
|
var old = $.fn.balloonSelector
|
|
|
|
$.fn.balloonSelector = function (option) {
|
|
return this.each(function () {
|
|
var $this = $(this)
|
|
var data = $this.data('oc.balloon-selector')
|
|
var options = $.extend({}, BalloonSelector.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
|
|
|
if (!data) $this.data('oc.balloon-selector', (data = new BalloonSelector(this, options)))
|
|
})
|
|
}
|
|
|
|
$.fn.balloonSelector.Constructor = BalloonSelector
|
|
|
|
// BALLOON SELECTOR NO CONFLICT
|
|
// ===================================
|
|
|
|
$.fn.balloonSelector.noConflict = function () {
|
|
$.fn.balloonSelector = old
|
|
return this
|
|
}
|
|
|
|
// BALLOON SELECTOR DATA-API
|
|
// ===================================
|
|
|
|
$(document).on('render', function(){
|
|
$('div[data-control=balloon-selector]').balloonSelector()
|
|
})
|
|
|
|
}(window.jQuery); |