私はjQueryの初心者であり、問題が発生しています。以下の簡単なコードスニペットでは、現在の日時を返すためにajax呼び出しを行っています。ページが読み込まれるとすぐにボタンをクリックすると、「ボタンがクリックされました」というメッセージが表示されます。WebMethodも呼び出されます。ただし、成功時のコールバック関数が呼び出されていないように見える「success」というメッセージは表示されません。ただし、ページが読み込まれてから数秒待ってからボタンをクリックすると、問題なく動作します。これは、jQueryスクリプトの読み込みに時間がかかっていることを意味しますか?その場合、ページが読み込まれた直後にボタンをクリックしたときに、「ボタンがクリックされました」というメッセージが表示されるのはどうしてですか。
<script>
$(document).ready(function () {
$("#btnClick").click(function () {
GetDate();
});
});
function GetDate() {
alert("Button clicked!");
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
},
error: function (msg) {
alert("error");
}
});
}
</script>
<form runat="server">
<asp:Button ID="btnClick" runat="server" />
</form>
//WebForm.aspx.cs
[System.Web.Services.WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}