$(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 への提案を手伝ってくれる人はいますか?