$hot.find('.sib-ac-hot-item').click(function(event){ var data = $(this).data('sib-autocomplete-item'); oAc._trigger('select', event, { node : $(this), selected : data }); });
blockUI : function(opts){ var bui = $(w).data(D.widgetName + '-blockui'); if(bui) { D.unblockUI(); } bui = new Dialog($.extend(true, {}, defaults, opts, { trigger : null, closeOnEscape : false, closeTpl : null, minHeight : 50, modal : true, position : { my : 'center', at : 'center', of : w, collision : 'fit', // 保证顶部header和close按钮始终能在可视区域内 using: function( pos ) { var topOffset = $( this ).css( pos ).offset().top; if ( topOffset < 0 ) { $( this ).css( "top", pos.top - topOffset ); } } }, draggable : false })); $(w).data(D.widgetName + '-blockui', bui); bui.open(); },
_init : function() { var state = this.state, opts = state.options, $page = state.$page = this.$element, tmpl = '<table cellspacing="0" cellpadding="0" border="0"><tr></tr></table>'+ '<div class="a-page-toolbar"></div>'+ '<div class="a-page-info"></div>'+ '<div style="clear:both;"></div>'; $page.addClass('a-page').empty().append($(tmpl)); var $toolbar = state.$toolbar = $page.find('.a-page-toolbar'); var $pagetable = state.$pagetable = $page.find('table'); var $pageinfo = state.$pageinfo = $page.find('.a-page-info'); this._buildPagetable(); /*$el.find('.a-page-list').unbind('.page').bind('change.page', function(){ opts.pageSize = $(this).val(); opts.onChangePageSize.call(target, opts.pageSize); var pageCount = Math.ceil(opts.total/opts.pageSize); selectPage(target, opts.pageNumber); });*/ this.showInfo(); if(opts.toolbarTarget) { var $tbContent = $(opts.toolbarTarget); if(!$tbContent[0] && typeof opts.toolbarTarget === 'string') { $tbContent = $('#' + opts.toolbarTarget); } $toolbar.append($tbContent); } },
show : function( active ) { var state = this.state, $el = this.$element, that = this, opts = state.options, $trigger = state.$trigger; if(opts.disabled) { return; } if(this._trigger( "beforeshow", null ) === false) { return; } //默认第一个 if(!active || $(active).length <= 0) { active = $trigger.eq(0); } this._makeActive(active); //第一次初始化 if(!opts.target && !state._hasBuild) { state._hasBuild = true; var content = opts.content, contentCls = '.' + state.mconst.clsPrefix + '-content', $content = this.$element.find(contentCls); if($.isFunction(opts.content)) { content = opts.content.call($trigger[0]); } if(typeof content === 'string') { $content.html(content); } else if(content) { var $cntInner = $(content).show(); $cntInner.appendTo($content); //$content.append(content); } this.render(); } //this.$element.show(); var eventParam = { triggers : $trigger, //可能多个trigger,如果一个则triggers === active activeTrigger : active, popup : $el }; var fn = function(){ that._trigger('showafter', null, eventParam); }; if('slide' == opts.effect) { $el.slideDown(opts.speed || 'normal', fn); } else if('fade' == opts.effect) { $el.fadeIn(opts.speed || 'normal', fn); } else { $el.show(0, fn); //$el.show(fn); } this._trigger('show', null, eventParam); if(state.$activeTrigger) { this._syncPosition(); } },
render : function (oAc, results, $hot, options) { //生成html var $table = $('<table></table>'); var $tr, opts = options || {}, colNum = opts.colNum || 4, itemWidth = opts.itemWidth || 'auto', self = this; $.each(results, function(i, item){ if(i % colNum == 0) { $tr = $('<tr></tr>').appendTo($table); } var $td = $('<td><a href="javascript:void(0)"></a></td>').appendTo($tr); var $a = $td.find('a').addClass('sib-ac-hot-item'); $td.outerWidth(itemWidth); $a.data('sib-autocomplete-item', item); if(typeof opts.itemFormatter === 'function') { var node = opts.itemFormatter.call($a[0], item, $a); if(node && typeof node === 'string') { $a.html(node); } else if(node) { $a.append(node); } } else { $a.text(item.label); } }); $hot.append($table); $hot.addClass('sib-ac-hot-table'); $hot.find('table tr:even').addClass('sib-ac-hot-table-even'); var leave = colNum - results.length % colNum; $('<td></td>').appendTo($tr).attr('colspan', leave); },
state.$view.find(dselector).each(function(i, item){ if($(item).outerHeight() > maxOuterH){ maxOuterH = $(item).outerHeight(); } if($(item).is(':visible')) { isVisible = true; } });
formatter : function(val, row, td){ /*var $chk = $('<input type="checkbox" name="hello_abc" />').click(function(e){ e.stopPropagation(); }); $chk.data('state', row);*/ var $expander = $('<div class="a-datagrid-row-expander a-datagrid-row-expand" />'); $(td).append($expander); }
unblockUI : function(){ var d = $(w).data(D.widgetName + '-blockui'); if(d) { d.close(); d.destroy(); } $(w).data(D.widgetName + '-blockui', null); }
_buildHTML : function(){ var state = this.state, $el = this.$element, opts = state.options, $zwinwrap = state.$zwinwrap = $el.find('[data-iz-wwrapper]'), $zwintitle = state.$zwintitle = $el.find('[data-iz-wtitle]'), $zwinimage = state.$zwinimage = $el.find('[data-iz-wimage]'), si = state.options.smallimage; if(isIE6){ state.$ieframe = $('<iframe class="zoomIframe" src="javascript:\'\';" marginwidth="0" marginheight="0" align="bottom" scrolling="no" frameborder="0" ></iframe>'); } if (opts.type == 'innerzoom') { $el.css({ cursor: 'default' }); var thickness = (si.bleft == 0) ? 1 : si.bleft; $zwinwrap.css({ borderWidth: thickness + 'px' }); } $zwinwrap.css({ width: Math.round(opts.zoomWidth) + 'px' }); $zwinimage.css({ width: '100%', height: Math.round(opts.zoomHeight) + 'px' }); //zoom title $zwintitle.css({ width: '100%', position: 'absolute' }); $zwintitle.hide(); /*if (settings.title && zoomtitle.length > 0) { $('.zoomWrapperTitle', this.node).html(zoomtitle).show(); }*/ $(opts.parentNode).append($el); $el.css({ position: 'absolute', zIndex: 5001 }); this.setPosition(); $el.hide(); }
_initBtns : function(){ var state = this.state, $el = this.$element, $d = state.$dialog, opts = state.options, self = this; if(!$.isArray(opts.btns) || !opts.btns.length) return; var $btns = $(SIB.unite(btnTpl, state.mconst)); $d.append($btns); $.each(opts.btns, function(i, btn){ var $btn = $(btn.tpl); $btn.appendTo($btns); if($.isFunction(btn.click)) { $btn.on('click', $.proxy(btn.click, self)); } if(btn.autoFocus) { $btn.focus(); } if(btn.align && $.inArray(btn.align, ['left', 'center', 'right'])) { $btns.css('text-align', btn.align); //$btn.addClass('sib-' + opts.align); } }); }
setCenter : function(){ var state = this.state, opts = state.options, $el = this.$element, si = state.smallimage, siRegion = si.getRegion(), region = state.region; //calculating center position region.top = (siRegion.oh - region.h - 2) / 2; region.left = (siRegion.ow - region.w - 2) / 2; //centering lens $el.css({ top: region.top, left: region.left }); if (opts.type == 'reverse') { $(this.image).css({ position: 'absolute', display: 'block', left: -(region.left + 1 - si.bleft) + 'px', top: -(region.top + 1 - si.btop) + 'px' }); } this._trigger('lensposchange'); },
_prepareOption : function() { var state = this.state, opts = state.options, $el = this.$element, self = this; state.zIndex = +opts.zIndex; state.$dialog = $el; state.$header = $el.find('>[data-role=header]'); state.$close = $el.find('>[data-role=close]'); state.$content = $el.find('>[data-role=content]'); if(opts.trigger) { var $t = $(opts.trigger); state.$trigger = $t.length > 0 ? $t : null; } //内容类型 state.contentType = getType(); function getType() { var type = ''; if (/^(https?:\/\/|\/|\.\/|\.\.\/)/.test(opts.content)) { type = "iframe"; } return type; } },
_prepareOption : function() { var state = this.state, opts = state.options, $el = this.$element; var $img = $el.find('img:eq(0)'); state.$img = $img; state.title = $el.attr('title'); state.imgTitle = $img.attr('title'); state.zoom_active = false; state.largeimageloading = false; //tell us if large image is loading state.largeimageloaded = false; //tell us if large image is loaded state.mouseDown = false; state.thumbActiveCls = SIB.unite(opts.thumbActiveCls, this.constructor); state.$thumbs = $(opts.thumbs); state.$thumb; //当前 $el.on('click', function (e) { /*e.preventDefault(); return false;*/ var href = opts.href if($.isFunction(opts.href)) { href = opts.href($el, state.$img, state.$thumb); } if(href) { $el.attr('href', href); } }); if ($.inArray($.trim(opts.type), ALL_TYPES) < 0) { opts.type = 'standard'; } },
$.each(items, function(i, item) { var cls = ['sib-calendar-date-item', 'sib-calendar-date-item-'+DAY_LABELS[item.day]], label = item.label; if(!item.available) { cls.push('sib-item-disabled'); } if(item.className) { cls.push(item.className); } if(item.isPrevMonth || item.isNextMonth) { if(!opts.selectOtherMonths) { cls.shift(); } if(!opts.showOtherMonths) { label = ''; cls = []; } } var tdStr = SIB.unite(cellTmpl, { //itemRole : item.role, itemCls : cls.join(' '), itemValue : item.value, itemLabel : label//opts.showOtherMonths ? item.label : '' }); var $item = $(tdStr); $item.data('date', item.value); $tr.append($item); });
$thumbs.each(function(i){ if(opts.preloadImages) { var img = new Image(); thumb_preload[i] = img; img.src = $(this).attr('data-iz-large'); } });
_prepareOption : function() { var state = this.state, $el = this.$element, opts = state.options, pad = opts.padding, $c = state.$container; state.disabled = false; if (opts.minWidth && opts.minWidth > 0 && $(w).width() <= opts.minWidth) { this.destroy(); return; } var offset = $el.offset(); var cOffset = $c.offset(); var pOffset = $el.offsetParent().offset(); state.from = { top : cOffset.top - pad.top, left : cOffset.left - pad.left }; state.to = { top : cOffset.top + $c.height() - $el.outerHeight(true) - pad.bottom, left : cOffset.left + $c.width() - $el.outerWidth(true) - pad.right }; state.end = { top : cOffset.top + $c.height(), left : cOffset.left + $c.width() } state.pOffset = pOffset; if(typeof $.easing[opts.easing] !== 'function') { opts.easing = 'swing'; } },
hide : function () { var $el = this.$element; $(this.state.image).css({ 'opacity': 1 }); $el.hide(); },
_createIframe: function() { var state = this.state, self = this, $content = state.$content; var $iframe = state.$iframe = $("<iframe>", { src: "javascript:'';", scrolling: "no", frameborder: "no", allowTransparency: "true", css: { border: "none", width: "100%", display: "block", height: "100%", overflow: "hidden" } }).appendTo($content); // 给 iframe 绑一个 close 事件 // iframe 内部可通过 window.frameElement.trigger('close') 关闭 Events.mixTo($iframe[0]); $iframe[0].on('close', function(data){ self.close(null, data); }); },
_prepareOption : function() { var state = this.state, opts = state.options; state.$trigger = $(opts.trigger); state.$popup = this.$element; },
_init : function() { var state = this.state, opts = state.options, $page = state.$page = this.$element, clsPrefix = state.mconst.clsPrefix; state.$parentNode = $(opts.appendTo); state.ALL_CLASS = { INFO : clsPrefix + '-info', ITEM : clsPrefix + '-item', FIRST : clsPrefix + '-first', PREV : clsPrefix + '-prev', NEXT : clsPrefix + '-next', LAST : clsPrefix + '-last', ELLIPSIS : clsPrefix + '-ellipsis', WHICH : clsPrefix + '-which', GOTO : clsPrefix + '-goto', CURRENT : clsPrefix + '-current', DISABLED : clsPrefix + '-disabled' } if(opts.theme && typeof opts.theme === 'string') { $page.addClass(opts.theme); } state.totalPages = parseInt(opts.totalPages); if(state.totalPages <= 0) { state.totalPages = Math.ceil(opts.totalRecords/opts.pageSize) || 0; } this._buildPage(); this.render(); },
_init : function() { var state = this.state, $el = this.$element, opts = state.options, $c; //就算refresh也不改变的值放init里初始化,如origStyle //如果父级节点没有匹配的,则搜索所有的(不一定是父级元素) $c = state.$container = opts.container ? $($el.closest(opts.container)[0] || $(opts.container)) : $(d.body); if(!$c || !$c.length) { $c = state.$container = $(d.body); } state.origStyle = $el.attr('style') || '';//保存style this._prepareOption(); this._buildHTML(); this._bindEvent(); },
'click ul.hot-tab-nav>li' : function( ev ){ var $this = $(ev.currentTarget); var index = $this.attr('data-nav-index'); $hot.find('.hot-tab-nav li').removeClass('hot-tab-selected'); $this.addClass('hot-tab-selected'); $hot.find('.hot-tab-panel').hide(); $hot.find('.hot-tab-panel[data-panel-index='+index+']').show(); }
_hideOverlayByClickOut : function(){ var state = this.state; $(d).click(function( event ){ if(SIB.isOutSide(event.target, [state.$combo, state.$overlay])) { state.$overlay.hide(); } }); },
'click .hot-tab-item' : function( ev ){ var $this = $(ev.currentTarget); var data = $this.data('sib-autocomplete-item'); oAc._trigger('select', event, { node : $this, selected : data }); }
setPosition : function(e){ var state = this.state, opts = state.options, $el = this.$element, si = state.smallimage, siRegion = si.getRegion(), region = state.region, x = e.pageX, y = e.pageY, lensleft = 0, lenstop = 0; function overleft() { return x - (region.w) / 2 < siRegion.pos.l; } function overright() { return x + (region.w) / 2 > siRegion.pos.r; } function overtop() { return y - (region.h) / 2 < siRegion.pos.t; } function overbottom() { return y + (region.h) / 2 > siRegion.pos.b; } lensleft = x + siRegion.bleft - siRegion.pos.l - (region.w + 2) / 2; lenstop = y + siRegion.btop - siRegion.pos.t - (region.h + 2) / 2; if (overleft()) { lensleft = siRegion.bleft - 1; } else if (overright()) { lensleft = siRegion.w + siRegion.bleft - region.w - 1; } if (overtop()) { lenstop = siRegion.btop - 1; } else if (overbottom()) { lenstop = siRegion.h + siRegion.btop - region.h - 1; } region.left = lensleft; region.top = lenstop; $el.css({ 'left': lensleft + 'px', 'top': lenstop + 'px' }); if (opts.type == 'reverse') { $(state.image).css({ position: 'absolute', display: 'block', left: -(region.left + 1 - siRegion.bleft) + 'px', top: -(region.top + 1 - siRegion.btop) + 'px' }); } this._trigger('lensposchange'); },
$thumbs.bind(opts.thumbsTriggerType, function(e){ e.preventDefault(); if($(this).hasClass(state.thumbActiveCls)) { return false; } $thumbs.removeClass(state.thumbActiveCls); self.swapThumb(this); return false; });
function renderItem(arr) { /** 分页展示页码个数end **/ if(arr && arr.length) { for(var i = 0; i < arr.length; i++) { if('.' == arr[i]) { $(Sib.unite(infoTmpl, {cls : state.ALL_CLASS.ELLIPSIS})).html('...').appendTo($page); } else { var cls = state.ALL_CLASS.ITEM + ' ' + (arr[i] == opts.current ? state.ALL_CLASS.CURRENT : ''); var itemData = { value : arr[i], label : arr[i], cls : cls }; $(Sib.unite(itemTmpl, itemData)).appendTo($page); } } } }
'click .a-datagrid-row-expander' : function( ev ){ var $t = $(ev.currentTarget), rowIndex = $t.closest('tr.a-datagrid-row').attr('a-datagrid-row-index'); if($t.hasClass('a-datagrid-row-expand')) { oGrid.expandRow(rowIndex); } else { oGrid.collapseRow(rowIndex); } ev.stopPropagation(); }
function getWeekHeader() { var tmpStr = SIB.unite(dayTmpl, { cls : 'sib-calendar-week', //itemValue : item.value, itemLabel : DAY_LABELS[7] }); var $td = $(tmpStr); self.i18nHtml($td, DAY_LABELS[7]); return $td; }
'click' : function( event ){ var $ct = $(event.currentTarget), dataName = state.mconst.clsPrefix + '-trigger-active', active = $ct.data(dataName); if(active === true) { this.hide(); } else { this.show($ct); } }