Created
September 23, 2013 06:13
-
-
Save justqyx/6666962 to your computer and use it in GitHub Desktop.
值得学习的 JS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var _hmt = _hmt || []; | |
| $.ajaxSetup({ | |
| global: false, | |
| type: 'POST', | |
| dataType: 'json' | |
| }); | |
| (function($) { | |
| $.extend({ | |
| mask: { | |
| open: function(options) { | |
| var settings = $.extend({ | |
| title: '测试标题', | |
| main: 'mask测试内容', | |
| width: '530px', | |
| close: function() { | |
| $.mask.close(); | |
| } | |
| }, options); | |
| $('body').append('<div id="mask_bg">' + '</div>' + '<div id="mask_wrap">' + '<div id="mask_header" style="width:' + settings.width + ';">' + '<span id="msak_title">' + settings.title + '</span>' + '<a id="mask_close" class="js_mask_close" href="javascript:;"></a>' + '</div>' + '<div id="mask_main">' + settings.main + '</div>' + '</div>'); | |
| $('.js_mask_close').click(settings.close); | |
| $(window).resize(this.position).resize(); | |
| $(document).one('keyup', function(e) { | |
| if (e.keyCode == 27) { | |
| settings.close(); | |
| }; | |
| }); | |
| }, | |
| close: function() { | |
| $('#mask_bg').remove(); | |
| $('#mask_wrap').remove(); | |
| }, | |
| position: function() { | |
| var obj = $('#mask_wrap'); | |
| obj.width($('#mask_content').width()); | |
| $('#mask_bg').height($('body').height()); | |
| obj.css({ | |
| 'left': (document.documentElement.clientWidth - obj.width()) / 2, | |
| 'top': $(document).scrollTop() + (document.documentElement.clientHeight - obj.height()) / 2 | |
| }); | |
| } | |
| }, | |
| prompt: { | |
| loading: function(layout, change) { | |
| var clone = layout.clone(true); | |
| return { | |
| start: function() { | |
| layout.replaceWith(change); | |
| }, | |
| end: function() { | |
| change.replaceWith(clone); | |
| } | |
| }; | |
| }, | |
| auto: function(text) { | |
| $('.js_prompt_auto').remove(); | |
| var obj = $('<span class="js_prompt_auto" style="position: fixed; z-index:9999; display: inline-block; background: #f7ed9f; border: 1px solid #fdceb0; height: 40px; line-height: 40px; padding: 0 10px; color: #625a1a;">' + text + '</span>'); | |
| $('body').append(obj); | |
| obj.css({ | |
| 'left': (document.documentElement.clientWidth - obj.width()) / 2, | |
| 'top': 85 | |
| }); | |
| setTimeout(function() { | |
| obj.fadeOut(500); | |
| }, 5000); | |
| }, | |
| confirm: function(obj, text, callback) { | |
| var _obj = $('<div class="mask_card_wrap mask_card_confirm"><div class="mask_card_icon"></div><div class="mask_card"><div class="mask_card_confirm_text">' + text + '</div><div class="mask_card_confirm_opera"><a class="link1 f12 js_mask_confirm_cancel" href="javascript:;">取消</a><a class="button5 ml5 js_mask_confirm_ok" href="javascript:;">确定</a></div></div></div>'); | |
| var set = { | |
| width: obj.width(), | |
| height: obj.height(), | |
| top: obj.offset().top, | |
| left: obj.offset().left, | |
| scroll: $(document).scrollTop(), | |
| position: function() { | |
| if (set.top - $('.mask_card_confirm').height() > set.scroll + 70) { | |
| $('.mask_card_confirm').css({ | |
| 'z-index': 999, | |
| 'left': set.left - obj.width() / 2, | |
| 'top': set.top - $('.mask_card_confirm').height() - 10 | |
| }).addClass('bottom'); | |
| } else { | |
| $('.mask_card_confirm').css({ | |
| 'z-index': 999, | |
| 'left': set.left - obj.width() / 2, | |
| 'top': set.top + set.height + 10 | |
| }).addClass('top'); | |
| } | |
| $('.mask_card_icon').css({ | |
| 'left': obj.width() - 6 | |
| }); | |
| } | |
| }; | |
| $('.mask_card_confirm').remove(); | |
| $('body').append(_obj); | |
| set.position(); | |
| $('.js_mask_confirm_cancel').one('click', function() { | |
| _obj.remove(); | |
| }); | |
| $('.js_mask_confirm_ok').one('click', function() { | |
| if ($.isFunction(callback)) { | |
| callback(obj); | |
| _obj.remove(); | |
| } | |
| }); | |
| } | |
| } | |
| }); | |
| })($); | |
| (function($) { | |
| $.fn.textSearch = function(str, options) { | |
| var defaults = { | |
| divFlag: true, | |
| divStr: " ", | |
| markClass: "", | |
| markColor: "red", | |
| nullReport: true, | |
| callback: function() { | |
| return false; | |
| } | |
| }; | |
| var sets = $.extend({}, defaults, options || {}), | |
| clStr; | |
| if (sets.markClass) { | |
| clStr = "class='" + sets.markClass + "'"; | |
| } else { | |
| clStr = "style='color:" + sets.markColor + ";'"; | |
| } | |
| //对前一次高亮处理的文字还原 | |
| $("span[rel='mark']").each(function() { | |
| var text = document.createTextNode($(this).text()); | |
| $(this).replaceWith($(text)); | |
| }); | |
| //字符串正则表达式关键字转化 | |
| $.regTrim = function(s) { | |
| var imp = /[\^\.\\\|\(\)\*\+\-\$\[\]\?]/g; | |
| var imp_c = {}; | |
| imp_c["^"] = "\\^"; | |
| imp_c["."] = "\\."; | |
| imp_c["\\"] = "\\\\"; | |
| imp_c["|"] = "\\|"; | |
| imp_c["("] = "\\("; | |
| imp_c[")"] = "\\)"; | |
| imp_c["*"] = "\\*"; | |
| imp_c["+"] = "\\+"; | |
| imp_c["-"] = "\\-"; | |
| imp_c["$"] = "\$"; | |
| imp_c["["] = "\\["; | |
| imp_c["]"] = "\\]"; | |
| imp_c["?"] = "\\?"; | |
| s = s.replace(imp, function(o) { | |
| return imp_c[o]; | |
| }); | |
| return s; | |
| }; | |
| $(this).each(function() { | |
| var t = $(this); | |
| str = $.trim(str); | |
| if (str === "") { | |
| //alert("关键字为空"); | |
| return false; | |
| } else { | |
| //将关键字push到数组之中 | |
| var arr = []; | |
| if (sets.divFlag) { | |
| arr = str.split(sets.divStr); | |
| } else { | |
| arr.push(str); | |
| } | |
| } | |
| var v_html = t.html(); | |
| //删除注释 | |
| v_html = v_html.replace(/<!--(?:.*)\-->/g, ""); | |
| //将HTML代码支离为HTML片段和文字片段,其中文字片段用于正则替换处理,而HTML片段置之不理 | |
| var tags = /[^<>]+|<(\/?)([A-Za-z]+)([^<>]*)>/g; | |
| var a = v_html.match(tags), | |
| test = 0; | |
| $.each(a, function(i, c) { | |
| if (!/<(?:.|\s)*?>/.test(c)) { //非标签 | |
| //开始执行替换 | |
| $.each(arr, function(index, con) { | |
| if (con === "") { | |
| return; | |
| } | |
| var reg = new RegExp($.regTrim(con), "g"); | |
| if (reg.test(c)) { | |
| //正则替换 | |
| c = c.replace(reg, "♂" + con + "♀"); | |
| test = 1; | |
| } | |
| }); | |
| c = c.replace(/♂/g, "<span rel='mark' " + clStr + ">").replace(/♀/g, "</span>"); | |
| a[i] = c; | |
| } | |
| }); | |
| //将支离数组重新组成字符串 | |
| var new_html = a.join(""); | |
| $(this).html(new_html); | |
| if (test === 0 && sets.nullReport) { | |
| //alert("没有搜索结果"); | |
| return false; | |
| } | |
| //执行回调函数 | |
| sets.callback(); | |
| }); | |
| }; | |
| })(jQuery); | |
| var Common = { | |
| ajax: function(options) { | |
| var defaultValue = { | |
| type: 'POST', | |
| url: '', | |
| data: '', | |
| dataType: 'json', | |
| context: $(document), | |
| beforeSend: function(obj) {}, | |
| success: function(data, obj) {}, | |
| complete: function(obj) {} | |
| }; | |
| var setting = $.extend(defaultValue, options); | |
| if (!setting.context.data('flag')) { | |
| setting.context.data({ | |
| 'flag': 'true' | |
| }); | |
| } | |
| if (setting.context.data('flag') == 'true') { | |
| $.ajax({ | |
| type: setting.type, | |
| url: Config['defaultUrl'] + setting.url, | |
| data: setting.data, | |
| dataType: setting.dataType, | |
| context: setting.context, | |
| beforeSend: function() { | |
| setting.context.data({ | |
| 'flag': 'false' | |
| }); | |
| setting.beforeSend($(this)); | |
| }, | |
| success: function(data) { | |
| setting.success(data, $(this)); | |
| }, | |
| complete: function() { | |
| setting.context.data({ | |
| 'flag': 'true' | |
| }); | |
| setting.complete($(this)); | |
| } | |
| }); | |
| } | |
| }, | |
| layout: function(title, url, data) { | |
| Common.ajax({ | |
| url: url, | |
| data: data, | |
| success: function(data, obj) { | |
| $.mask.open({ | |
| title: title, | |
| main: data['data'] | |
| }); | |
| } | |
| }); | |
| }, | |
| getValue: function(text) { | |
| var json = {}; | |
| var dom = $(text); | |
| dom.each(function(i) { | |
| var obj = dom.eq(i); | |
| if (obj.attr('data-default-value') != dom.eq(i).val()) { | |
| json[obj.attr('name')] = obj.val(); | |
| } else { | |
| json[obj.attr('name')] = ''; | |
| }; | |
| }); | |
| return json; | |
| }, | |
| searchTag: function(options, fn) { | |
| $(document) | |
| .on('keyup', '.js_search_tag', function(e) { | |
| var data = Common.getValue('.js_default_value'); | |
| data['notin'] = new Array(); | |
| var notin = $('.js_tag_added'); | |
| for (var i = 0; i < notin.length; i++) { | |
| data['notin'][i] = notin.eq(i).attr('data-tag-id'); | |
| }; | |
| data['levelin'] = options['levelin']; | |
| data['limitnum'] = options['limitnum']; | |
| data['pagenum'] = options['pagenum']; | |
| var obj = $(this); | |
| if (data['code'] != '' && e.keyCode != 38 && e.keyCode != 40 && e.keyCode != 13) { | |
| $.ajax({ | |
| url: Config['defaultUrl'] + '/Tool/tool_search_stock_a', | |
| data: data, | |
| context: $(this), | |
| success: function(data) { | |
| if (data['status'] == 1) { | |
| var html = ''; | |
| for (var k in data['data']) { | |
| html += '<a href="javascript:;" data-tag-num="' + data['data'][k]['shownumberb'] + data['data'][k]['shownumber'] + '" data-tag-id="' + data['data'][k]['idstock'] + '" data-tag-name="' + data['data'][k]['showname'] + '" class="search_tag_result_list">' + data['data'][k]['showname'] + '(' + data['data'][k]['shownumberb'] + data['data'][k]['shownumber'] + ')</a>'; | |
| } | |
| $(this).siblings('.search_tag_result').html(html).show(); | |
| $('.search_tag_result_list') | |
| .off('click') | |
| .on('click', function() { | |
| fn($(this)); | |
| obj.val('').blur(); | |
| }).on('mouseover', function() { | |
| $('.search_tag_result_list').removeClass('hover'); | |
| $(this).addClass('hover'); | |
| }).on('mouseout', function() { | |
| $(this).removeClass('hover'); | |
| }).eq(0).mouseover(); | |
| } else { | |
| $(this).siblings('.search_tag_result').html('<div class="pl20 pr20">' + data['info'] + '</div>').show(); | |
| } | |
| } | |
| }); | |
| } else if (data['code'] == '') { | |
| $(this).siblings('.search_tag_result').html(' ').hide(); | |
| $(this).val(''); | |
| $('.js_rec_name').html(' '); | |
| $('.js_rec_now').html(' ').attr('data-stock-id', ''); | |
| $('.js_rec_price').val('').blur(); | |
| } else if (e.keyCode == 38) { | |
| var ind = $('.search_tag_result_list.hover').index(); | |
| if (ind == 0) { | |
| $('.search_tag_result_list').eq($('.search_tag_result_list').length - 1).mouseover(); | |
| } else { | |
| $('.search_tag_result_list').eq(ind - 1).mouseover(); | |
| }; | |
| } else if (e.keyCode == 40) { | |
| var ind = $('.search_tag_result_list.hover').index(); | |
| if (ind == $('.search_tag_result_list').length - 1) { | |
| $('.search_tag_result_list').eq(0).mouseover(); | |
| } else { | |
| $('.search_tag_result_list').eq(ind + 1).mouseover(); | |
| }; | |
| } else if (e.keyCode == 13) { | |
| $('.search_tag_result_list.hover').click(); | |
| }; | |
| }) | |
| .on('click', '.tag_del', function() { | |
| $(this).parent('.js_tag_added').remove(); | |
| }); | |
| }, | |
| toDecimal2: function(x) { | |
| var f = parseFloat(x); | |
| if (isNaN(f)) { | |
| return false; | |
| } | |
| var f = Math.round(x * 100) / 100; | |
| var s = f.toString(); | |
| var rs = s.indexOf('.'); | |
| if (rs < 0) { | |
| rs = s.length; | |
| s += '.'; | |
| } | |
| while (s.length <= rs + 2) { | |
| s += '0'; | |
| } | |
| return s; | |
| }, | |
| page: function(options) { | |
| var set = { | |
| table: options.table, | |
| num: options.prev.attr('data-num-min'), | |
| min: options.prev.attr('data-num-min'), | |
| max: options.next.attr('data-num-max'), | |
| callback: options.callback, | |
| size: function() { | |
| if (set.num <= set.min) { | |
| options.prev.addClass('ban'); | |
| } else { | |
| options.prev.removeClass('ban'); | |
| } | |
| if (set.num >= set.max) { | |
| options.next.addClass('ban'); | |
| } else { | |
| options.next.removeClass('ban'); | |
| } | |
| } | |
| }; | |
| set.size(); | |
| options.prev.click(function() { | |
| if (!$(this).hasClass('ban')) { | |
| set.num--; | |
| set.callback($(this), { | |
| 'table': set.table, | |
| 'start': set.num | |
| }); | |
| set.size(); | |
| } | |
| }); | |
| options.next.click(function() { | |
| if (!$(this).hasClass('ban')) { | |
| set.num++; | |
| set.callback($(this), { | |
| 'table': set.table, | |
| 'start': set.num | |
| }); | |
| set.size(); | |
| } | |
| }); | |
| }, | |
| cutStr: function(str, len) { | |
| var l = 0; | |
| for (var i = 0; i < str.length; i++) { | |
| var strTemp = str.charAt(i); | |
| if (strTemp.match(/[\x00-\x80]/)) { | |
| l += 1; | |
| } else { | |
| l += 2; | |
| }; | |
| }; | |
| if (l > len) { | |
| return false; | |
| } else { | |
| return true; | |
| } | |
| }, | |
| contains: function(arr, text) { | |
| for (var i = 0; i < arr.length; i++) { | |
| if (arr[i] == text) { | |
| return true; | |
| }; | |
| }; | |
| return false; | |
| }, | |
| upload: function(options) { | |
| options.object.html('<div style="position: relative; background:#4D90FE ; width: 80px; border-radius: 3px;"><div style="color: #fff; height: 35px; line-height: 35px; border-radius: 3px; text-align: center;">上传文件</div><div style="overflow: hidden; position: absolute; top: 0; width: 80px; height: 35px; left: 0;"><form method="post" target="' + options.target + '" action="' + options.action + '" enctype="multipart/form-data"><input name="' + options.name + '" id="' + options.uploadpdf + '" type="file" onchange="this.parentNode.submit();" style="height: 35px; cursor: pointer; -moz-opacity:0;opacity:0;filter:alpha(opacity=0); position: absolute; left: -140px; "/></form></div><iframe name="' + options.target + '" width="0" height="0" frameborder="0" src="about:blank"></iframe></div>'); | |
| return $('#' + options.uploadpdf); | |
| }, | |
| stringToJson: function(text) { | |
| var data = {}, arr = text.split('&'), | |
| i = 0, | |
| j = 0; | |
| for (; i < arr.length; i++) { | |
| var _arr = arr[i].split('='); | |
| if (_arr[1].indexOf(',') >= 0) { | |
| var __arr = _arr[1].split(','); | |
| data[_arr[0]] = []; | |
| for (; j < __arr.length; j++) { | |
| data[_arr[0]].push(__arr[j]); | |
| }; | |
| } else { | |
| data[_arr[0]] = _arr[1]; | |
| } | |
| } | |
| return data; | |
| }, | |
| spell: function(obj1, obj2) { | |
| var data = {}; | |
| for (var k in obj1) { | |
| data[k] = obj1[k]; | |
| } | |
| for (var k in obj2) { | |
| data[k] = obj2[k]; | |
| } | |
| return data; | |
| }, | |
| moreSelect: function(options) { | |
| var defaultValue = { | |
| obj: '', //外层包裹对象 | |
| title: {}, //默认title | |
| data: {}, //选择数据 | |
| flag: false, //是否有默认值 | |
| disabled: false //是否禁用 | |
| }; | |
| var setting = $.extend(defaultValue, options); | |
| var html = '', | |
| list = ''; | |
| for (var k in setting.data) { | |
| list += '<li><label for="' + setting.data[k] + '"><input type="checkbox" id="' + setting.data[k] + '" value="' + k + '" />' + setting.data[k] + '</label></li>'; | |
| } | |
| html = '<div class="common_select common_select_more" data-select-value=""><div class="common_select_show"><div class="common_select_text">' + setting.title + '</div><a class="common_select_button" href="javascript:;"></a></div><ul class="common_select_list">' + list + '</ul></div>'; | |
| $(setting.obj).html(html); | |
| var $li = $(setting.obj + ' li'), | |
| $input = $(setting.obj + ' li input'), | |
| $label = $(setting.obj + ' li label'), | |
| $show = $(setting.obj + ' .common_select_show'), | |
| $text = $(setting.obj + ' .common_select_text'), | |
| $sel = $(setting.obj + ' .common_select'), | |
| $list = $(setting.obj + ' .common_select_list'); | |
| $show.click(function(e) { | |
| if (setting.disabled == false) { | |
| var obj = $(this).siblings('.common_select_list'); | |
| if (obj.is(':visible')) { | |
| obj.hide(); | |
| } else { | |
| $('.common_select_list').hide(); | |
| obj.show(); | |
| $(document).click(function(e) { | |
| var flag = true; | |
| for (var i = 0; i < $li.length; i++) { | |
| if ($li.eq(i)[0] == e.target || $input.eq(i)[0] == e.target || $label.eq(i)[0] == e.target) { | |
| flag = false; | |
| } | |
| } | |
| if (flag == true) { | |
| obj.hide(); | |
| } | |
| }); | |
| e.stopPropagation(); | |
| } | |
| } | |
| }); | |
| $input.change(function() { | |
| var check = $(setting.obj + ' li input:checked'), | |
| len = check.length, | |
| textArr = [], | |
| idArr = []; | |
| for (var i = 0; i < len; i++) { | |
| textArr.push(check.eq(i).attr('id')); | |
| idArr.push(check.eq(i).val()); | |
| } | |
| if (len == 0) { | |
| $text.html(setting.title).removeClass('select'); | |
| $sel.data({ | |
| 'value': null | |
| }); | |
| } else { | |
| $text.html(textArr.join(',')).addClass('select'); | |
| $sel.data({ | |
| 'value': idArr.join(',') | |
| }); | |
| } | |
| }); | |
| return function() { | |
| if ($sel.data('value')) { | |
| return $sel.data('value').split(','); | |
| } else { | |
| return ''; | |
| } | |
| }; | |
| }, | |
| select: function(options) { | |
| var defaultValue = { | |
| obj: '', //外层包裹对象 | |
| show: {}, //显示title数据(默认显示) | |
| data: {}, //选择数据 | |
| flag: false, //是否有默认值 | |
| disabled: false, //是否禁用 | |
| fn: function(obj) {} //选择列表时执行的回调函数 | |
| }; | |
| var setting = $.extend(defaultValue, options); | |
| var html = '', | |
| list = ''; | |
| if (setting.show['exit'] && setting.show['title']) { | |
| list = '<li><a data-select-value="" href="javascript:;">' + setting.show['exit'] + '</a></li>'; | |
| for (var k in setting.data) { | |
| list += '<li><a data-select-value="' + k + '" href="javascript:;">' + setting.data[k] + '</a></li>' | |
| } | |
| html = '<div class="common_select" data-select-value=""><div class="common_select_show"><div class="common_select_text">' + setting.show['title'] + '</div><a class="common_select_button" href="javascript:;"></a></div><ul class="common_select_list">' + list + '</ul></div>'; | |
| } else { | |
| var cl0 = '', | |
| cl1 = ''; | |
| if (setting.flag == false) { | |
| cl1 = 'dis'; | |
| } else { | |
| cl0 = 'select'; | |
| } | |
| for (var k in setting.data) { | |
| list += '<li><a data-select-value="' + k + '" href="javascript:;">' + setting.data[k] + '</a></li>' | |
| } | |
| for (var k in setting.show) { | |
| html = '<div class="common_select" data-select-value="' + k + '"><div class="common_select_show"><div class="common_select_text ' + cl0 + '">' + setting.show[k] + '</div><a class="common_select_button ' + cl1 + '" href="javascript:;"></a></div><ul class="common_select_list">' + list + '</ul></div>' | |
| } | |
| } | |
| $(setting.obj).html(html); | |
| var $li = $(setting.obj + ' li'), | |
| $show = $(setting.obj + ' .common_select_show'), | |
| $a = $(setting.obj + ' li a'), | |
| $text = $(setting.obj + ' .common_select_text'), | |
| $sel = $(setting.obj + ' .common_select'), | |
| $list = $(setting.obj + ' .common_select_list'); | |
| $li.eq(0).hide(); | |
| $show.click(function(e) { | |
| if (setting.disabled == false) { | |
| var obj = $(this).siblings('.common_select_list'); | |
| if (obj.is(':visible')) { | |
| obj.hide(); | |
| } else { | |
| $('.common_select_list').hide(); | |
| obj.show(); | |
| $(document).click(function(e) { | |
| var flag = true; | |
| for (var i = 0; i < $a.length; i++) { | |
| if ($a.eq(i)[0] == e.target) { | |
| flag = false; | |
| } | |
| } | |
| if (flag == true) { | |
| obj.hide(); | |
| } | |
| }); | |
| e.stopPropagation(); | |
| } | |
| } | |
| }); | |
| $a.click(function() { | |
| if (setting.show['title'] && $(this).parent('li').index() == 0) { | |
| $text.removeClass('select'); | |
| $text.html(setting.show['title']); | |
| } else { | |
| $text.addClass('select'); | |
| $text.html($(this).html()); | |
| } | |
| $li.show(); | |
| $(this).parent('li').hide(); | |
| $sel.attr('data-select-value', $(this).attr('data-select-value')); | |
| $list.hide(); | |
| if (setting.fn) { | |
| setting.fn($(this)); | |
| } | |
| }); | |
| return function() { | |
| return $sel.attr('data-select-value'); | |
| }; | |
| }, | |
| tag: function(options) { | |
| var stock = '', | |
| delStock = function() { | |
| $(options.obj + ' .common_tag_del').click(function() { | |
| $(this).parent('span').remove(); | |
| $(options.obj + ' input').val('').focus(); | |
| }); | |
| }; | |
| for (var k in options.stock) { | |
| stock += '<span class="common_tag" data-tag-id="' + k + '"><a class="common_tag_name">' + options.stock[k] + '</a><a href="javascript:;" class="common_tag_del">×</a></span>' | |
| }; | |
| $(options.obj).html('<div class="common_tag_wrap clearfix">' + stock + '<div class="common_tag_search"><input class="js_default_value" type="text" name="' + options.name + '" value="' + options.defaultValue + '" data-default-value="' + options.defaultValue + '" /><div class="common_tag_list"></div></div></div>'); | |
| $('.common_tag_search input').keyup(function(e) { | |
| var val = $(this).val(); | |
| options.data['notin'] = new Array(); | |
| var notin = $(options.obj + ' .common_tag_wrap').children('span'); | |
| for (var i = 0; i < notin.length; i++) { | |
| options.data['notin'][i] = notin.eq(i).attr('data-tag-id'); | |
| }; | |
| if (val != '' && e.keyCode != 38 && e.keyCode != 40 && e.keyCode != 13) { | |
| options.data[$(this).attr('name')] = val; | |
| Common.ajax({ | |
| url: options.url, | |
| data: options.data, | |
| context: $(this), | |
| success: function(data, obj) { | |
| if (data['status'] == 1) { | |
| obj.siblings('.common_tag_list').html(options.html(data)).show(); | |
| $(options.obj + ' .common_tag_list a').click(function() { | |
| if ($(options.obj + ' .common_tag_wrap span').length >= options.length) { | |
| $.prompt.auto('最多添加' + options.length + '个'); | |
| } else { | |
| $(options.obj + ' .common_tag_search').before('<span data-tag-id="' + $(this).attr('data-tag-id') + '" class="common_tag"><a class="common_tag_name">' + $(this).attr('data-tag-name') + '</a><a class="common_tag_del" href="javascript:;">×</a></span>'); | |
| } | |
| $(options.obj + ' .common_tag_list').html('').hide(); | |
| $(options.obj + ' input').val('').focus(); | |
| delStock(); | |
| }).mouseover(function() { | |
| $(this).addClass('hover').siblings('a').removeClass('hover'); | |
| }); | |
| $(options.obj + ' .common_tag_list a:first').mouseover(); | |
| } else { | |
| obj.siblings('.common_tag_list').html('<div class="pl20 pr20">' + data['info'] + '</div>').show(); | |
| } | |
| } | |
| }); | |
| } else if (val == '') { | |
| $(this).siblings('.common_tag_list').html('').hide(); | |
| $(this).val(''); | |
| } else if (e.keyCode == 38) { | |
| var objHover = $(options.obj + ' .common_tag_list a.hover').index(); | |
| if (objHover == 0) { | |
| $(options.obj + ' .common_tag_list a:last').mouseover().siblings('a').mouseout(); | |
| } else { | |
| $(options.obj + ' .common_tag_list a').eq(objHover - 1).mouseover().siblings('a').mouseout(); | |
| } | |
| } else if (e.keyCode == 40) { | |
| var objHover = $(options.obj + ' .common_tag_list a.hover').index(); | |
| var obj = $(options.obj + ' .common_tag_list a'); | |
| if (objHover == obj.length - 1) { | |
| $(options.obj + ' .common_tag_list a:first').mouseover().siblings('a').mouseout(); | |
| } else { | |
| $(options.obj + ' .common_tag_list a').eq(objHover + 1).mouseover().siblings('a').mouseout(); | |
| } | |
| } else if (e.keyCode == 13) { | |
| $(options.obj + ' .common_tag_list a.hover').click(); | |
| } | |
| }).keydown(function(e) { | |
| if (e.keyCode == 8 && $(this).val() == '') { | |
| var notin = $(options.obj + ' .common_tag_wrap').children('span'); | |
| notin.eq(notin.length - 1).remove(); | |
| } | |
| }); | |
| delStock(); | |
| return function() { | |
| var arr = []; | |
| var notin = $(options.obj + ' .common_tag_wrap').children('span'); | |
| for (var i = 0; i < notin.length; i++) { | |
| arr.push(notin.eq(i).attr('data-tag-id')); | |
| }; | |
| return arr; | |
| } | |
| }, | |
| checkbox: function(obj) { | |
| return function() { | |
| var arr = []; | |
| var inp = $(obj + ' input'); | |
| for (var i = 0; i < inp.length; i++) { | |
| if (inp.eq(i)[0].checked) { | |
| arr.push(inp.eq(i).val()); | |
| } | |
| } | |
| return arr; | |
| } | |
| }, | |
| sina: function(obj, cl) { | |
| $(obj).html('<span class="fl" style="margin-top: 2px;">同时分享到微博</span><a class="share_sina_icon ' + cl + ' fl" href="javascript:;"></a><form id="form" action="' + Config['defaultUrl'] + '/Pointview/sinadev_a" style="display: none;" method="get" target="_blank"></form>') | |
| $('.share_sina_icon').click(function() { | |
| Common.ajax({ | |
| url: '/Pointview/if_sinadev_a', | |
| success: function(data, obj) { | |
| if (data['status'] == 1) { | |
| if ($('.share_sina_icon').hasClass('select')) { | |
| $('.share_sina_icon').removeClass('select'); | |
| } else { | |
| $('.share_sina_icon').addClass('select'); | |
| } | |
| } else { | |
| $('#form').submit(); | |
| } | |
| } | |
| }); | |
| }); | |
| return function() { | |
| if ($('.share_sina_icon').hasClass('select')) { | |
| return 1; | |
| } else { | |
| return 0; | |
| } | |
| } | |
| }, | |
| isEmail: function(text) { | |
| return /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test(text); | |
| }, | |
| api: function(url) { | |
| window.open(url, null, 'height=500, width=600'); | |
| } | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment