-1
$(function(){
  var regex= /^\/t\d-/;
  var a = $('.post')[0];
  var b = $(a).find('.profile-icons')[0];
  var c = $(b).find('.i_icon_edit')[0];
  var testTitle = /^\[COMPLETED\]/i;
  var d = $('.page-title').find('a')[0].innerText;
   if(regex.test(window.location.pathname) && c && !testTitle.test(d)){
   var ahref = c.parentNode.href.replace('http://'+window.location.hostname,'');
   var complete = document.createElement('li');
   complete.id="completed";
   complete.setAttribute('onclick','markComplete("'+ahref+'")');
   complete.innerHTML="Mark Complete";
   b.appendChild(complete);
  }
});
  function markComplete(yhref){
   $.post(yhref,function(data){
     var val = $(data).find('input[name="subject"]').val();
     $(data).find('input[name="subject"]').val('[COMPLETED]'+val);
     $(data).find('input[name="edit_reason"]').val('User Marked Question as Completed');
     $(data).find('form[name="post"]').submit();
   }).done(function(){
   window.location.reload();
  });
 }

実際のコードは機能しますmarkCompleteが、Ajax の悪臭を放つ関数は機能しません。これについてはまだ独学する時間がないからです。フォーラムでトピックのタイトルを変更し、ページをリロードして Ajax リクエストを保存するだけです。リロードはAjaxでは機能しません。jQuery.com のドキュメントを読みましたが、まだ完全には理解できていません。コードの完成や Ajax への提案を手伝ってくれる人はいますか?

4

1 に答える 1