/** * Created by simon on 2015/4/20. * 全局公用js */ var showPopover = function () { $(this).popover('show'); } , hidePopover = function () { $(this).popover('hide'); }; $(function(){ /*ajax设置项*/ $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); /*禁用bootstrap全局过度效果*/ $.support.transition = false; /*全局启用bootstrap tooltip*/ $('[data-toggle="tooltip"]').tooltip(); /*用户表单输入时删除错误提示*/ $("body").delegate("form input","keydown",function(){ $(this).parents(".form-group").removeClass("has-error"); $(this).next(".help-block").remove(); }); /*验证码重新加载*/ $("#reloadCaptcha").click(function(){ console.log("coming"); var new_src = $(this).find("img").attr("src")+'&'+Math.random(); $(this).find("img").attr("src",new_src); }); $(".navbar-form span").click(function(){ $("#top-search-form").submit(); }); /*消息提示框自动隐藏*/ $("#alert_message").delay(5000).hide(0); /*激活邮件发送*/ $(".send-email-token").click(function(){ $.get('/email/sendToken',function(msg){ if( msg === 'tooFast'){ alert('发送太频繁,请一分钟后再试.'); } }); $(".send-email-tips").show(); }); /*加载更多分页*/ $(document).on("click",".load-more",function(){ var $btn = $(this).button('loading'); var loading_btn = $(this).button('loading'); var source_type = $(this).data('source_type'); var source_id = $(this).data('source_id'); var next_page_url = $(this).data('next_page_url'); $.get(next_page_url,function(html){ $("#comments-"+source_type+"-"+source_id+" .widget-comment-list").append(html); loading_btn.parent().remove(); }); }); $(document).on("click",".comment-reply",function(){ var message = $(this).data('message'); var source_type = $(this).data('source_type'); var source_id = $(this).data('source_id'); var to_user_id = $(this).data('to_user_id'); $("#comment-"+source_type+"-content-"+source_id).attr('placeholder',message); $("#"+source_type+"-comment-"+source_id+"-btn").data('to_user_id',to_user_id); return false; }); $(".collapse-cancel").click(function(){ var collapse_id = $(this).data("collapse_id"); $("#"+collapse_id).collapse('hide'); return false; }); /*私信模块处理*/ $('#sendTo_message_model').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); var to_user_id = button.data('to_user_id'); var to_user_name = button.data('to_user_name'); var modal = $(this); modal.find('#to_user_id').val(to_user_id); modal.find('#to_user_name').text(to_user_name); }); $("#sendTo_submit").click(function(){ $.ajax({ type: "POST", url: "/message/store", data: $('#sendTo_message_form').serialize(), success: function(msg){ alert('消息发送成功'); $("#sendTo_message_model").modal('hide'); }, error: function(){ alert("发送失败!"); } }); }); /*关注模块处理,关注问题,用户等*/ $("#follow-button,.followTopic,.followerUser").click(function(){ if(!check_login()){ return ; } $(this).button('loading'); var follow_btn = $(this); var source_type = $(this).data('source_type'); var source_id = $(this).data('source_id'); var show_num = $(this).data('show_num'); $.get('/follow/'+source_type+'/'+source_id,function(msg){ follow_btn.removeClass('disabled'); follow_btn.removeAttr('disabled'); if(msg =='followed'){ follow_btn.html('已关注'); follow_btn.addClass('active'); }else{ follow_btn.html('关注'); follow_btn.removeClass('active'); } /*是否操作关注数*/ if(Boolean(show_num)){ var follower_num = $("#follower-num").html(); if(msg==='followed'){ $("#follower-num").html(parseInt(follower_num)+1); }else{ $("#follower-num").html(parseInt(follower_num)-1); } } }); }); /*赞同模块公共处理*/ $(".btn-support").hover(function(){ var btn_support = $(this); var source_type = btn_support.data('source_type'); var source_id = btn_support.data('source_id'); $.get('/support/check/'+source_type+'/'+source_id,function(msg){ btn_support.removeClass('btn-default'); if(msg =='failed'){ btn_support.addClass('btn-warning'); btn_support.html(' 已赞'); }else{ btn_support.addClass('btn-success'); btn_support.html(' 赞同'); } }); }, function(){ var btn_support = $(this); var support_num = $(this).data('support_num'); btn_support.attr('class','btn btn-default btn-sm btn-support'); btn_support.html(' '+support_num); }); $(".btn-support").click(function(){ if(!check_login()){ return ; } var btn_support = $(this); var source_type = btn_support.data('source_type'); var source_id = btn_support.data('source_id'); var support_num = parseInt(btn_support.data('support_num')); $.get('/support/'+source_type+'/'+source_id,function(msg){ if(msg =='success'){ support_num++ btn_support.html(' '+support_num); btn_support.data('support_num',support_num); } }); }); /*通知异步加载*/ $("#unread_notifications").load("/ajax/unreadNotifications"); /*异步加载私信*/ $("#unread_messages").load("/ajax/unreadMessages"); /*标签自动选择*/ if( $("#select_tags").length > 0 ){ $("#select_tags").select2({ theme:'bootstrap', placeholder: "选择话题", ajax: { url: '/ajax/loadTags', dataType: 'json', delay: 250, data: function (params) { return { word: params.term }; }, processResults: function (data) { return { results: data }; }, cache: true }, minimumInputLength:1, tags:true }); $("#select_tags").change(function(){ $("#tags").val($("#select_tags").val()); }); } /*悬赏选择框处理*/ $(".reward-price-sample .btn-default").click(function(){ var button = $(this); $(".reward-price-sample .btn-default").each(function(){ $(this).removeClass("active"); }); button.addClass("active"); return false; }); $(".reward-price-sample .reward-price-number").keyup(function(){ var price = $.trim($(this).val()); if (!/^\d+$/.test(price) || parseInt(price) <= 0 ){ $(this).val(''); } $(".reward-price-sample .btn-default").each(function(){ $(this).removeClass("active"); }); return false; }); /*fancybox处理*/ $(".description .text-fmt img,.best-answer .text-fmt img,.widget-answers .text-fmt img,.widget-article .text-fmt img").each(function(){ var image = $(this); image.wrap(''); }); // 举报相关 $("#report_reason").hide(); $(".reportRadioItem").change(function() { var id = $("input[name='report_type']:checked").val(); if (id == 99){ $("#report_reason").show(); }else{ $("#report_reason").hide(); } }); $(".report_btn").click(function () { var source_type = $(this).data('source_type'); var source_id = $(this).data('source_id'); $("input[name='source_type']").val(source_type); $("input[name='source_id']").val(source_id); console.log(source_type); if (source_type == 'article'){ $("#reportModalLabel").text("举报此文章"); }else if(source_type == 'answer') { $("#reportModalLabel").text("举报此回答"); }else if(source_type == 'question') { $("#reportModalLabel").text("举报此问题"); } }); $(".comments").map(function(){ var commentNum = $(this).text().replace(/[^0-9]/ig,""); if(commentNum == 0){ return false; } var comment_id = $(this).attr('href'); var source_type = $(comment_id).data('source_type'); var source_id = $(comment_id).data('source_id'); console.log(source_type+source_id); load_comments(source_type,source_id); $(comment_id).collapse('show'); }); $("#report_submit_button").click(function () { var report_type = $("input[name='report_type']:checked").val(); if(typeof(report_type) == "undefined"){ alert('请填写举报原因'); } $("#report_form").submit(); }); }); function add_comment(token,source_type,source_id,content,to_user_id){ var postData = {_token:token,source_id:source_id,source_type:source_type,content:content}; if(to_user_id>0){ postData.to_user_id = to_user_id; } $.post('/comment/store',postData,function(html){ $("#comments-"+source_type+"-"+source_id+" .widget-comment-list").append(html); $("#comment-"+source_type+"-content-"+source_id).val(''); }); } function load_comments(source_type,source_id){ $.get('/'+source_type+'/'+source_id+'/comments',function(html){ $("#comments-"+source_type+"-"+source_id+" .widget-comment-list").append(html); }); } function clear_comments(source_type,source_id){ $("#comments-"+source_type+"-"+source_id+" .widget-comment-list").empty(); } /** * 编辑器图片图片文件方式上传 * @param file * @param editor * @param welEditable */ function upload_editor_image(file,editorId){ data = new FormData(); data.append("file", file); $.ajax({ data: data, type: "POST", dataType : 'text', url: "/image/upload", cache: false, contentType: false, processData: false, success: function(url) { console.log(url); if(url == 'error'){ alert('图片上传失败!请压缩图片大小再进行上传'); return false; } $('#'+editorId).summernote('insertImage', url, function ($image) { $image.css('width', $image.width() / 2); $image.addClass('img-responsive'); }); }, error:function(){ alert('图片上传失败,请压缩图片大小再进行上传 :)'); } }); } /*检查用户登录情况*/ function check_login(){ if(!is_login){ document.location = '/login'; return false; } return true; } /*手机号码格式校验*/ function is_mobile(mobile){ var reg = /^1[3456789]\d{9}$/; var phone = $.trim(mobile); if(phone == ''){ return false; } if(!reg.test(phone)){ return false; } return true; } function show_form_error(element,msg){ element.parent().addClass('has-error'); if(element.parent().find(".help-block").size() > 0){ element.parent().find(".help-block").html(msg); }else{ element.after(''+msg+''); } } function get_button_price(){ var price = 0; $(".reward-price-sample .btn-default").each(function(){ var button_price = $(this).data('price'); if($(this).hasClass('active')){ price = button_price; } }); return price; }