| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792 |
- ;(function () {
- //全局ajax处理
- $.ajaxSetup({
- complete: function (jqXHR) {},
- data: {
- },
- error: function (jqXHR, textStatus, errorThrown) {
- //请求失败处理
- }
- });
- if ($.browser.msie) {
- //ie 都不缓存
- $.ajaxSetup({
- cache: false
- });
- }
- //不支持placeholder浏览器下对placeholder进行处理
- if (document.createElement('input').placeholder !== '') {
- $('[placeholder]').focus(function () {
- var input = $(this);
- if (input.val() == input.attr('placeholder')) {
- input.val('');
- input.removeClass('placeholder');
- }
- }).blur(function () {
- var input = $(this);
- if (input.val() == '' || input.val() == input.attr('placeholder')) {
- input.addClass('placeholder');
- input.val(input.attr('placeholder'));
- }
- }).blur().parents('form').submit(function () {
- $(this).find('[placeholder]').each(function () {
- var input = $(this);
- if (input.val() == input.attr('placeholder')) {
- input.val('');
- }
- });
- });
- }
- //所有加了dialog类名的a链接,自动弹出它的href
- if ($('a.js-dialog').length) {
- Wind.use('artDialog', 'iframeTools', function () {
- $('.js-dialog').on('click', function (e) {
- e.preventDefault();
- var $_this = this,
- _this = $($_this);
- art.dialog.open($(this).prop('href'), {
- close: function () {
- $_this.focus(); //关闭时让触发弹窗的元素获取焦点
- return true;
- },
- title: _this.prop('title')
- });
- }).attr('role', 'button');
- });
- }
- //所有的ajax form提交,由于大多业务逻辑都是一样的,故统一处理
- var ajaxForm_list = $('form.js-ajax-form');
- if (ajaxForm_list.length) {
- Wind.use('ajaxForm', 'noty', function () {
- if ($.browser.msie) {
- //ie8及以下,表单中只有一个可见的input:text时,会整个页面会跳转提交
- ajaxForm_list.on('submit', function (e) {
- //表单中只有一个可见的input:text时,enter提交无效
- e.preventDefault();
- });
- }
- $('button.js-ajax-submit').on('click', function (e) {
- e.preventDefault();
- /*var btn = $(this).find('button.js-ajax-submit'),
- form = $(this);*/
- var btn = $(this),
- form = btn.parents('form.js-ajax-form');
- if(btn.data("loading")){
- return;
- }
- //批量操作 判断选项
- if (btn.data('subcheck')) {
- btn.parent().find('span').remove();
- if (form.find('input.js-check:checked').length) {
- var msg = btn.data('msg');
- if (msg) {
- noty({
- text: msg,
- type:'confirm',
- layout:"center",
- timeout: false,
- modal: true,
- buttons: [
- {
- addClass: 'btn btn-primary',
- text: '确定',
- onClick: function($noty){
- $noty.close();
- btn.data('subcheck', false);
- btn.click();
- }
- },
- {
- addClass: 'btn btn-danger',
- text: '取消',
- onClick: function($noty) {
- $noty.close();
- }
- }
- ]
- });
- } else {
- btn.data('subcheck', false);
- btn.click();
- }
- } else {
- noty({text:"请至少选择一项",
- type:'error',
- layout:'center'
- });
- }
- return false;
- }
- //ie处理placeholder提交问题
- if ($.browser.msie) {
- form.find('[placeholder]').each(function () {
- var input = $(this);
- if (input.val() == input.attr('placeholder')) {
- input.val('');
- }
- });
- }
- form.ajaxSubmit({
- url: btn.data('action') ? btn.data('action') : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
- dataType: 'json',
- beforeSubmit: function (arr, $form, options) {
- btn.data("loading",true);
- var text = btn.text();
- //按钮文案、状态修改
- btn.text(text + '中...').prop('disabled', true).addClass('disabled');
- },
- success: function (data, statusText, xhr, $form) {
- var text = btn.text();
- //按钮文案、状态修改
- btn.removeClass('disabled').text(text.replace('中...', '')).parent().find('span').remove();
- if (data.state === 'success') {
- noty({text: data.info,
- type:'success',
- layout:'center'
- });
- } else if (data.state === 'fail') {
- var $verify_img=form.find(".verify_img");
- if($verify_img.length){
- $verify_img.attr("src",$verify_img.attr("src")+"&refresh="+Math.random());
- }
-
- var $verify_input=form.find("[name='verify']");
- $verify_input.val("");
-
- noty({text: data.info,
- type:'error',
- layout:'center'
- });
- btn.removeProp('disabled').removeClass('disabled');
- }
-
- if (data.referer) {
- //返回带跳转地址
- var wait=btn.data("wait");
- if(!wait){
- wait=1500;
- }
- if(window.parent.art){
- //iframe弹出页
- if(wait){
- setTimeout(function(){
- window.parent.location.href = data.referer;
- },wait);
- }else{
- window.parent.location.href = data.referer;
- }
-
- }else{
- if(wait){
- setTimeout(function(){
- window.location.href = data.referer;
- },wait);
- }else{
- window.location.href = data.referer;
- }
- }
- } else {
- if (data.state === 'success') {
- var wait=btn.data("wait");
- if(window.parent.art){
- if(wait){
- setTimeout(function(){
- reloadPage(window.parent);
- },wait);
- }else{
- reloadPage(window.parent);
- }
- }else{
- //刷新当前页
- if(wait){
- setTimeout(function(){
- reloadPage(window);
- },wait);
- }else{
- reloadPage(window);
- }
- }
- }
- }
-
- },
- complete: function(){
- btn.data("loading",false);
- }
- });
- });
- });
- }
- //dialog弹窗内的关闭方法
- $('#js-dialog_close').on('click', function (e) {
- e.preventDefault();
- try{
- art.dialog.close();
- }catch(err){
- Wind.use('artDialog','iframeTools',function(){
- art.dialog.close();
- });
- };
- });
- //所有的删除操作,删除数据后刷新页面
- if ($('a.js-ajax-delete').length) {
- Wind.use('noty', function () {
- $('.js-ajax-delete').on('click', function (e) {
- e.preventDefault();
- var $_this = this,
- $this = $($_this),
- href = $this.prop('href'),
- msg = $this.data('msg');
-
- noty({
- text: msg,
- type:'confirm',
- layout:"center",
- timeout: false,
- modal: true,
- buttons: [
- {
- addClass: 'btn btn-primary',
- text: '确定',
- onClick: function($noty){
- $noty.close();
- $.getJSON(href).done(function (data) {
- if (data.state === 'success') {
- if (data.referer) {
- location.href = data.referer;
- } else {
- reloadPage(window);
- }
- } else if (data.state === 'fail') {
- //art.dialog.alert(data.info);
- //alert(data.info);//暂时处理方案
- art.dialog({
- content: data.info,
- icon: 'warning',
- ok: function () {
- this.title(data.info);
- return true;
- }
- });
- }
- });
- }
- },
- {
- addClass: 'btn btn-danger',
- text: '取消',
- onClick: function($noty) {
- $noty.close();
- }
- }
- ]
- });
-
- });
- });
- }
-
-
- if ($('a.js-ajax-dialog-btn').length) {
- Wind.use('noty', function () {
- $('.js-ajax-dialog-btn').on('click', function (e) {
- e.preventDefault();
- var $_this = this,
- $this = $($_this),
- href = $this.prop('href'),
- msg = $this.data('msg');
-
- noty({
- text: msg,
- type:'confirm',
- layout:"center",
- timeout: false,
- modal: true,
- buttons: [
- {
- addClass: 'btn btn-primary',
- text: '确定',
- onClick: function($noty){
- $noty.close();
- $.getJSON(href).done(function (data) {
- if (data.state === 'success') {
- if (data.referer) {
- location.href = data.referer;
- } else {
- reloadPage(window);
- }
- } else if (data.state === 'fail') {
- art.dialog.alert(data.info);
- }
- });
- }
- },
- {
- addClass: 'btn btn-danger',
- text: '取消',
- onClick: function($noty) {
- $noty.close();
- }
- }
- ]
- });
-
- });
- });
- }
- //所有的请求刷新操作
- var ajax_refresh = $('a.J_ajax_refresh'),
- refresh_lock = false;
- if (ajax_refresh.length) {
- ajax_refresh.on('click', function (e) {
- e.preventDefault();
- if (refresh_lock) {
- return false;
- }
- refresh_lock = true;
- $.post(this.href, function (data) {
- refresh_lock = false;
- if (data.state === 'success') {
- if (data.referer) {
- location.href = data.referer;
- } else {
- reloadPage(window);
- }
- } else if (data.state === 'fail') {
- Wind.art.dialog.alert(data.info);
- }
- }, 'json');
- });
- }
- //日期选择器
- var dateInput = $("input.js-date")
- if (dateInput.length) {
- Wind.use('datePicker', function () {
- dateInput.datePicker();
- });
- }
- //日期+时间选择器
- var dateTimeInput = $("input.js-datetime");
- if (dateTimeInput.length) {
- Wind.use('datePicker', function () {
- dateTimeInput.datePicker({
- time: true
- });
- });
- }
- //赞,拍等,有数量操作的按钮
- var $js_count_btn=$('a.js-count-btn');
- if ($js_count_btn.length) {
- Wind.use('noty', function () {
- $js_count_btn.on('click', function (e) {
- e.preventDefault();
- var $this = $(this),
- href = $this.prop('href');
-
- $.post(href,{},function(data){
-
- if (data.state === 'success') {
-
- var $count=$this.find(".count");
- var count=parseInt($count.text());
- $count.text(count+1);
- if(data.info){
- noty({text: data.info,
- type:'success',
- layout:'center'
- });
- }
-
-
- } else if (data.state === 'fail') {
- noty({text: data.info,
- type:'error',
- layout:'center'
- });
- }
-
-
- },"json");
-
- });
- });
- }
-
- //
- var $J_action_btn=$('a.J_action_btn');
- if ($J_action_btn.length) {
- Wind.use('noty', function () {
- $J_action_btn.on('click', function (e) {
- e.preventDefault();
- var $this = $(this),
- href = $this.prop('href');
-
- $.post(href,{},function(data){
-
- if (data.state === 'success') {
-
- if(data.info){
- noty({text: data.info,
- type:'success',
- layout:'center'
- });
- }
-
-
- } else if (data.state === 'fail') {
- noty({text: data.info,
- type:'error',
- layout:'center'
- });
- }
-
-
- },"json");
-
- });
- });
- }
-
- var $js_favorite_btn=$('a.js-favorite-btn');
- if ($js_favorite_btn.length) {
- Wind.use('noty', function () {
- $js_favorite_btn.on('click', function (e) {
- e.preventDefault();
- var $this = $(this),
- href = $this.prop('href'),
- url = $this.data("url"),
- key = $this.data("key"),
- title = $this.data("title"),
- description = $this.data("description");
-
-
- $.post(href,{url:url,key:key,title:title,description:description},function(data){
-
- if (data.state === 'success') {
-
- if(data.info){
- noty({text: data.info,
- type:'success',
- layout:'center'
- });
- }
-
-
- } else if (data.state === 'fail') {
- noty({text: data.info,
- type:'error',
- layout:'center'
- });
- }
-
-
- },"json");
-
- });
- });
- }
-
- var $comment_form=$(".comment-area .comment-form");
- if($comment_form.length){
- Wind.use("ajaxForm",function(){
-
- $(".js-ajax-submit",$comment_form).on("click",function(e){
- var btn=$(this),
- form=btn.parents(".comment-form");
- e.preventDefault();
-
- var url= btn.data('action') ? btn.data('action') : form.attr('action');
- var data=form.serialize()+"&url="+encodeURIComponent(location.href);
- $.ajax({
- url:url,
- dataType: 'json',
- type: "POST",
- beforeSend:function(){
- var text = btn.text();
- //按钮文案、状态修改
- btn.text(text + '中...').prop('disabled', true).addClass('disabled');
- },
- data:data,
- success: function (data, textStatus, jqXHR) {
- var text = btn.text();
- //按钮文案、状态修改
- btn.removeClass('disabled').text(text.replace('中...', '')).parent().find('span').remove();
- btn.removeProp('disabled').removeClass('disabled');
- if (data.state === 'success') {
- $('<span class="tips_success">' + data.info + '</span>').appendTo(btn.parent()).fadeIn('slow').delay(1000).fadeOut(function () {
- });
- } else if (data.state === 'fail') {
- $('<span class="tips_error">' + data.info + '</span>').appendTo(btn.parent()).fadeIn('fast');
- btn.removeProp('disabled').removeClass('disabled');
- }
-
- if (data.state === 'success') {
- var $comments=form.siblings(".comments");
- var comment_tpl=btn.parents(".comment-area").find(".comment-tpl").html();
- var $comment_tpl=$(comment_tpl);
- $comment_tpl.attr("data-id",data.data.id);
- var $comment_postbox=form.find(".comment-postbox");
- var comment_content=$comment_postbox.val();
- $comment_tpl.find(".comment-content .content").html(comment_content);
- $comments.append($comment_tpl);
- $comment_postbox.val("");
- }
-
- }
-
-
- });
-
- return false;
-
- });
- });
-
- }
- })();
- function comment_reply(obj){
-
- $(".comments .comment-reply-submit").hide();
- var $this=$(obj);
- var $comment_body=$this.parents(".comments > .comment> .comment-body");
-
- var commentid=$this.parents(".comment").data("id");
-
- var $comment_reply_submit=$comment_body.find(".comment-reply-submit");
-
- if($comment_reply_submit.length){
- $comment_reply_submit.show();
- }else{
- var comment_reply_box_tpl=$comment_body.parents(".comment-area").find(".comment-reply-box-tpl").html();
- $comment_reply_submit=$(comment_reply_box_tpl);
- $comment_body.append($comment_reply_submit);
- }
- $comment_reply_submit.find(".textbox").focus();
- $comment_reply_submit.data("replyid",commentid);
- }
- function comment_submit(obj){
-
- Wind.use('noty', function () {
-
- var $this=$(obj);
-
- var $comment_reply_submit=$this.parents(".comment-reply-submit");
-
- var $reply_textbox=$comment_reply_submit.find(".textbox");
- var reply_content=$reply_textbox.val();
-
- if(reply_content==''){
- $reply_textbox.focus();
- return;
- }
-
- var $comment_body=$this.parents(".comments > .comment> .comment-body");
-
- var comment_tpl=$comment_body.parents(".comment-area").find(".comment-tpl").html();
-
- var $comment_tpl=$(comment_tpl);
-
- var replyid=$comment_reply_submit.data('replyid');
-
- var $comment=$(".comments [data-id='"+replyid+"']");
-
- var username=$comment.data("username");
-
- var comment_content="回复 "+username+":"+reply_content;
- $comment_tpl.find(".comment-content .content").html(comment_content);
- $comment_reply_submit.before($comment_tpl);
-
- var $comment_form=$this.parents(".comment-area").find(".comment-form");
-
- var comment_url=$comment_form.attr("action");
-
- var post_table=$comment_form.find("[name='post_table']").val();
- var post_id=$comment_form.find("[name='post_id']").val();
-
- var uid=$comment.data("uid");
-
- $.post(comment_url,
- {
- post_table:post_table,
- post_id:post_id,
- to_uid:uid,
- parentid:replyid,
- content:reply_content,
- url:encodeURIComponent(location.href)
- },function(data){
- if(data.status==0){
- noty({text: data.info,
- type:'error',
- layout:'center'
- });
- $comment_tpl.remove();
- }
-
- if(data.status==1){
- $comment_tpl.attr("data-id",data.data.id);
- $reply_textbox.val('');
- }
-
- },'json');
-
-
- $comment_reply_submit.hide();
-
-
-
- });
-
- }
- //重新刷新页面,使用location.reload()有可能导致重新提交
- function reloadPage(win) {
- if(win){
-
- }else{
- win=window;
- }
- var location = win.location;
- location.href = location.pathname + location.search;
- }
- //页面跳转
- function redirect(url) {
- location.href = url;
- }
- //读取cookie
- function getCookie(name) {
- var nameEQ = name + "=";
- var ca = document.cookie.split(';');
- for (var i = 0; i < ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') {
- c = c.substring(1, c.length);
- }
- if (c.indexOf(nameEQ) == 0) {
- return c.substring(nameEQ.length, c.length);
- }
- };
- return null;
- }
- //设置cookie
- function setCookie(name, value, days) {
- var argc = setCookie.arguments.length;
- var argv = setCookie.arguments;
- var secure = (argc > 5) ? argv[5] : false;
- var expire = new Date();
- if(days==null || days==0) days=1;
- expire.setTime(expire.getTime() + 3600000*24*days);
- document.cookie = name + "=" + escape(value) + ("; path=/") + ((secure == true) ? "; secure" : "") + ";expires="+expire.toGMTString();
- }
- //浮出提示_居中
- function resultTip(options) {
- var cls = (options.error ? 'warning' : 'success');
- var pop = $('<div style="left:50%;top:30%;" class="pop_showmsg_wrap"><span class="pop_showmsg"><span class="' + cls + '">' + options.msg + '</span></span></div>');
- pop.appendTo($('body')).fadeIn(function () {
- pop.css({
- marginLeft: -pop.innerWidth() / 2
- }); //水平居中
- }).delay(1500).fadeOut(function () {
- pop.remove();
- //回调
- if (options.callback) {
- options.callback();
- }
- });
- }
- //弹窗居中定位 非ie6 fixed定位
- function popPos(wrap) {
- var ie6 = false,
- pos = 'fixed',
- top,
- win_height = $(window).height(),
- wrap_height = wrap.outerHeight();
- if ($.browser.msie && $.browser.version < 7) {
- ie6 = true;
- pos = 'absolute';
- }
- if (win_height < wrap_height) {
- top = 0;
- } else {
- top = ($(window).height() - wrap.outerHeight()) / 2;
- }
- wrap.css({
- position: pos,
- top: top + (ie6 ? $(document).scrollTop() : 0),
- left: ($(window).width() - wrap.innerWidth()) / 2
- }).show();
- }
- //新窗口打开
- function openwinx(url,name,w,h) {
- if(!w) w=screen.width;
- if(!h) h=screen.height;
- //window.open(url,name,"top=100,left=400,width=" + w + ",height=" + h + ",toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no");
- window.open(url,name);
- }
- //询问
- function confirmurl(url, message) {
- Wind.use("artDialog", "iframeTools", function () {
- art.dialog.confirm(message, function () {
- location.href = url;
- }, function () {
- art.dialog.tips('你取消了操作');
- });
- });
- }
- function open_iframe_dialog(url,title,options){
- var params={
- title: title,
- lock:true,
- opacity:0,
- width:"95%"
- };
- params=options?$.extend(params,options):params;
- Wind.use('artDialog','iframeTools', function () {
- art.dialog.open(url, params);
- });
- }
|