jQuery.fn.FixedInput = function (action) { var _this = jQuery(this); if (!_this.attr('on-start')) { _this .on('click', '.fixed-body', function () { _this.FixedInput('hide'); }) .attr('on-start', true); } switch (action) { case 'show': _this.addClass('show'); return setTimeout(() => { jQuery(_this.find('textarea,input')[0]).focus(); }, 100); case 'hide': _this.find('#cancel-comment-reply-link').click(); _this.find('input,textarea').blur(); _this.find('.dropup').removeClass('open'); return _this.removeClass('show'); default: } }; //移动端浮动的input|暂时仅用在评论 _win.bd.on('click', '[fixed-input]', function () { var _this = jQuery(this); // var _input = jQuery(_this.attr('data-input')); var _fixed = jQuery(_this.attr('fixed-input')); scrollTopTo('#comments'); _fixed.FixedInput('show'); //_input.length && _input.focus(); }); var $comments = jQuery('#comments-title'); var $cancel = jQuery('#cancel-comment-reply-link'); var $author = jQuery('#comment-user-info'); var $submit = jQuery('#commentform #submit'); var $com_ajax_url = _win.ajax_url; var $com_list = jQuery('#postcomments .commentlist'); //评论ajax翻页 _win.bd.on('click', '.commentlist .pagenav a,.comment-orderby', function () { var _this = jQuery(this); jQuery('#cancel-comment-reply-link').click(); if (_this.hasClass('pag-jump')) { _this.addClass('ajax-next'); return; } var ajax_replace = !_this.attr('no-replace'); return post_ajax(jQuery(this), '.commentlist', '.commentlist', '.comment', '', '.pagenav', '', '', ajax_replace); }); //编辑按钮,回复 _win.bd.on('click', '.comment-edit-link,.comment-reply-link', function () { var _this = jQuery(this), commentid = _this.attr('data-commentid'); var is_edit = _this.hasClass('comment-edit-link'); return addComment.moveForm(_this, 'div-comment-' + commentid, commentid, 'respond', _this.attr('data-postid'), is_edit), scrollTopTo(jQuery('#div-comment-' + commentid), -10), !1; }); //回车提交 _win.bd.on('keydown', '#comment', function (e) { var keycode = e.which || e.keyCode; if ((e.metaKey || e.ctrlKey) && keycode == 13) { jQuery(this).closest('#commentform').find('#submit').click(); } }); //删除评论 _win.bd.on('click', '.comment-trash-link', function () { var _this = jQuery(this); var commentid = _this.attr('data-commentid'); var trash_data = { action: 'trash_comment', comment_id: commentid, _wpnonce: _this.attr('data-nonce'), }; if (confirm(aksrt__('comment_confirm_delete')) == 1) { aksrt_ajax( _this, trash_data, function (n) { n.error || jQuery('#comment-' + commentid) .slideUp() .delay(1000, function () { jQuery(this).remove(); }); }, aksrt__('processing') ); } }); //审核评论 _win.bd.on('click', '.comment-approve-link', function () { var _this = jQuery(this); var commentid = _this.attr('data-commentid'); var trash_data = { action: 'approve_comment', comment_id: commentid, _wpnonce: _this.attr('data-nonce'), }; var reply = jQuery('#div-comment-' + commentid).find('.reply-link'); aksrt_ajax(_this, trash_data, function (n) { if (!n.error) { var _text = n.status == 'hold' ? aksrt__('comment_approve') : aksrt__('comment_reject'); var _class = n.status == 'hold' ? 'approve' : 'unapprove'; var _badg = n.status == 'hold' ? '' + aksrt__('comment_pending_review') + '' : ''; if (n.status == 'hold') { reply.remove(); } else { reply.length || _this.parents('.dropdown').before('' + aksrt__('comment_reply') + ''); } jQuery('#div-comment-' + commentid) .find('.badge-approve') .html(_badg); _this.removeClass('approve unapprove').addClass(_class).find('text').html(_text); } }); }); function htmlEscapes(val) { var htmlEscapes = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', }; var a = val.replace(/[&<>"']/g, function (match) { return htmlEscapes[match]; }); return a; } function htmlUnescapes(val) { var htmlUnescapes = { '&': '&', '<': '<', '>': '>', '"': '"', ''': "'", }; var a = val.replace(/&(amp|lt|gt|quot|#039);/g, function (match) { return htmlUnescapes[match]; }); return a; } //提交评论 _win.bd.on('click', '#commentform #submit', function () { var _this = jQuery(this); var _form = _this.parents('#commentform'); var inputs = _form.serializeObject(); if ($author.length && $author.attr('require_name_email')) { if (inputs.author.length < 2 || inputs.email.length < 4) { return notyf(aksrt__('comment_enter_name_email'), 'warning'), $author.addClass('open').find('[name="author"]').focus(), !1; } if (!is_mail(inputs.email)) { return notyf(aksrt__('comment_email_invalid'), 'warning'), $author.addClass('open').find('[name="email"]').focus(), !1; } } if (inputs.comment.length < 4) { return notyf(aksrt__('comment_too_short'), 'warning'), jQuery('#comment').focus(), !1; } inputs.comment = htmlEscapes(inputs.comment); inputs.action = 'submit_comment'; aksrt_ajax(_this, inputs, function (n) { var data = n.html; if (!n.error && data) { if (inputs.edit_comment_ID) { //编辑评论后提交 $cancel.click(); jQuery('#comment-content-' + inputs.edit_comment_ID).html(data); } else { //新建评论 var data = data.replace(/class="comment/, 'style="display:none;" class="comment ajax-comment'); var respond = jQuery('#respond'); var $com_list = jQuery('#postcomments .commentlist'); var is_comment_parent = respond.parent().parent('.comment'); if (is_comment_parent.length) { var _children = is_comment_parent.find('>.children'); if (_children.length) { _children.prepend(data); } else { is_comment_parent.append(''); } } else { if (!$com_list.length) { respond.after('
    ' + data + '
'); } else { var $order = jQuery('#postcomments .commentlist>.comment-filter'); if ($order.length) { $order.after(data); } else { $com_list.prepend(data); } } } if (jQuery('[reply-show]').length && n.comment) { if (~~n.comment.comment_approved > 0) { var hash = jQuery(jQuery('[reply-show]')[0]).attr('reload-hash'); //跳转 if (hash) { window.location.hash = hash; } window.location.reload(); } else { setTimeout(function () { notyf(aksrt__('comment_hidden_after_review'), 'warning'); }, 200); } } $cancel.click(); jQuery('#postcomments .ajax-comment').slideDown(200).removeClass('ajax-comment'); jQuery('#postcomments .comment-null').slideUp(200); } auto_fun(); wait_for(n.wait_time); jQuery('#comment').val(''); jQuery('[name="canvas_yz"]').val(''); jQuery('.imagecaptcha').click(); jQuery('#respond').FixedInput('hide'); } }); return false; }); var addComment = { moveForm: function (_this, commId, parentId, respondId, postId, num) { var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID'); var action_text_r = jQuery('#' + respondId + ' .action-text'); jQuery('.comment-footer').show(); if (num) { var $submit_html = $submit.html(); action_text_r.html(aksrt__('comment_edit_content')); t.I('comment').value = ''; //清空内容 jQuery('#comment_parent').attr('name', 'edit_comment_ID'); $submit.attr('disabled', true).html('' + aksrt__('loading') + ''); jQuery('#comment').attr('disabled', true).val(aksrt__('comment_fetching_content')); jQuery('#' + commId) .find('.comment-footer') .hide(); var data = { action: 'get_comment', comment_id: parentId, }; aksrt_ajax( _this, data, function (n) { n.error && $cancel.click(); $submit.html($submit_html).attr('disabled', false); jQuery('#comment').attr('disabled', false).val(htmlUnescapes(n.comment_content)).focus(); }, 'stop' ); } action_text_r.html(_this.attr('data-replyto')); t.respondId = respondId; postId = postId || false; if (!t.I('wp-temp-form-div')) { div = document.createElement('div'); div.id = 'wp-temp-form-div'; div.style.display = 'none'; respond.parentNode.insertBefore(div, respond); } !comm ? ((temp = t.I('wp-temp-form-div')), (t.I('comment_parent').value = '0'), temp.parentNode.insertBefore(respond, temp), temp.parentNode.removeChild(temp)) : comm.parentNode.insertBefore(respond, comm.nextSibling); // pcsheight() if (post && postId) post.value = postId; parent.value = parentId; cancel.style.display = ''; cancel.onclick = function () { var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId); jQuery('#comment_parent').attr('name', 'comment_parent'); t.I('comment_parent').value = '0'; jQuery('.comment-footer').show(); jQuery('#comment').val('').trigger('input'); setTimeout(function () { jQuery('#' + respondId).removeClass('show'); }, 10); action_text_r.html(''); if (temp && respond) { temp.parentNode.insertBefore(respond, temp); temp.parentNode.removeChild(temp); } this.style.display = 'none'; this.onclick = null; return false; }; try { setTimeout(function () { jQuery('#' + respondId).FixedInput('show'); }, 10); } catch (e) {} return false; }, I: function (e) { return document.getElementById(e); }, }; //等待 function wait_for($time) { var wait = $time || 15; var $submit_html = $submit.html(); function wait_ing() { if (wait > 0) { $submit.html('
' + wait + '
').attr('disabled', true); wait--; setTimeout(wait_ing, 1000); } else { $submit.html($submit_html).attr('disabled', false); wait = 15; } } wait_ing(); }