div のコンテンツの変更に問題があります。最初に ajax 呼び出しを行い、サーバーから JSON 配列を受け取ります。ここまでは順調ですね。次に、いくつかの div のコンテンツをサーバーから受け取ったものに変更したいと考えています。問題は、最初のクリックでコンテンツが変更されないことです。応答は毎回問題ありません。Fiddler とコードで、正しい応答を受け取っていることを確認しました。しかし、なぜ私のページの div が最初のクリックで変更されないのか、なぜ毎回 2 回クリックしなければならないのかという謎が残ります。私はこれを理解するのに何時間も費やし、すべてを試しましたが、論理的なものは何もないようです. これが私のコードです(プロジェクトはMVC 4です):
$('#btnsearch').click(function ()
{
var searchStr = $('#txtSearch').val();
var noOfPages = 1;
$.ajax({
type: "POST",
datatype: 'json',
url: $('#btnsearch').data('request-url'),/*URL from Razor's page*/
data: { pageNo: noOfPages, searchString: searchStr },/*MVC 4 call*/
success: function (jsontext)
{
$('#hiddenSearchResult').val(jsontext);
},
error: function ()
{
alert('Error when searching!');
}
});
var json = $('#hiddenSearchResult').val();
if (json.length === 0){ alert('result is empty!');
return;}/*with empty json, parsing throws error*/
json = JSON.parse(json);
if (json.Content == undefined) return;
for (var i = 0; i < json.Content.length; i++) {
switch (i) {
case 0:
$('#snippetsdivinner').html(json.Content[i].ContentString);
break;
case 1:
$('#snippetsdivinner1').html(json.Content[i].ContentString);
break;
case 2:
$('#snippetsdivinner2').html(json.Content[i].ContentString);
break;
case 3:
$('#snippetsdivinner3').html(json.Content[i].ContentString);
break;
}
}
});