/** * jQuery EasyUI 1.3.6 * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. * * Licensed under the GPL or commercial licenses * To use it on other terms please contact author: info@jeasyui.com * http://www.gnu.org/licenses/gpl.txt * http://www.jeasyui.com/license_commercial.php * * jQuery EasyUI slider Extensions 1.0 beta * jQuery EasyUI slider 组件扩展 * jeasyui.extensions.slider.js * 二次开发 流云 * 最近更新:2014-06-16 * * 依赖项: * 1、jquery.jdirk.js v1.0 beta late * 2、jeasyui.extensions.js v1.0 beta late * * Copyright (c) 2013-2014 ChenJianwei personal All rights reserved. * http://www.chenjianwei.org */ (function ($, undefined) { $.fn.slider.extensions = {}; function initialize(target) { var t = $(target), state = $.data(target, "slider"), opts = state.options; if (!opts._initialized) { buildSliderRepair(target); opts._initialized = true; } }; function buildSliderRepair(target) { var t = $(target), state = $.data(target, "slider"), opts = state.options, slider = state.slider; slider.find('div.slider-inner').unbind('.slider').bind('mousedown.slider', function (e) { if (state.isDragging || opts.disabled) { return; } var pos = $(this).offset(); var value = pos2value(target, (opts.mode == 'h' ? (e.pageX - pos.left) : (e.pageY - pos.top))); adjustValue(value); opts.onComplete.call(target, opts.value); }); function adjustValue(value) { var s = Math.abs(value % opts.step); if (s < opts.step / 2) { value -= s; } else { value = value - s + opts.step; } t.slider("setValue", value); //setValue(target, value); } function pos2value(target, pos) { var size = opts.mode == 'h' ? slider.width() : slider.height(), value = opts.converter.toValue.call(target, opts.mode == 'h' ? (opts.reversed ? (size - pos) : pos) : (size - pos), size); return value.toFixed(0); } }; var _enable = $.fn.slider.methods.enable; function enable(target) { var t = $(target); _enable.call(t, t); buildSliderRepair(target); }; var _disable = $.fn.slider.methods.disable; function disable(target) { var t = $(target); _disable.call(t, t); buildSliderRepair(target); }; var _slider = $.fn.slider; $.fn.slider = function (options, param) { if (typeof options == "string") { return _slider.apply(this, arguments); } options = options || {}; return this.each(function () { var jq = $(this), hasInit = $.data(this, "slider") ? true : false, opts = hasInit ? options : $.extend({}, $.fn.slider.parseOptions(this), options); _slider.call(jq, opts); initialize(this); }); }; $.union($.fn.slider, _slider); var methods = $.fn.slider.extensions.methods = { enable: function (jq) { return jq.each(function () { enable(this); }); }, disable: function (jq) { return jq.each(function () { disable(this); }); } }; var defaults = $.fn.slider.extensions.defaults = { }; $.extend($.fn.slider.defaults, defaults); $.extend($.fn.slider.methods, methods); //if ($.fn.form && $.isArray($.fn.form.otherList)) { // $.fn.form.otherList.push("slider"); // //$.array.insert($.fn.form.otherList, 0, "searchbox"); //} $.extend($.fn.datagrid.defaults.editors, { slider: { init: function (container, options) { return $("
").appendTo(container).slider(options);; }, destroy: function (target) { $(target).slider("destroy"); }, getValue: function (target) { return $(target).slider("getValue"); }, setValue: function (target, value) { $(target).slider("setValue", value); }, resize: function (target, width) { $(target).slider("resize", { width: width }); } } }); })(jQuery);