同じである私は、AJAX呼び出しが、結果は常に
$("#helpicons li").click(function() {
var self = this;
$.post('/SubCategories/GetSubCat/' + $(self).data('id'), function (data)
{
for (var i = 0; i < data.length; i++)
{
var helplist = data[i];
$('<li/>').html("<h5>" + helplist.scat + "</h5>" +"<ul id='qlist'></ul>").appendTo('#taglist');
$.post('/Questions/GetQuestion/' + helplist.scatid, function (dd)
{
for (var j = 0; j < dd.length; j++)
{
var helpquestion = dd[j];
(function() {
$('<li/>').html("<p>" + helpquestion.quest + "</p>")
.click(function() {
alert(helpquestion.quest);//Problem is here
}).appendTo('#qlist');
})();
}
});
}
});
});
で自己呼び出し関数の式を有するが、アラートの各<li>
<ul id="qlist">
で結果をクリックすると、最後の行であるときリスト内のすべてのliタグで同じです。自己呼び出しは機能していないようです。必要に応じて
私の行動:
[HttpPost]
public JsonResult GetQuestion(int id)
{
var ajaxq = db.Questions.Where(e => e.SubCategoryId == id).Select(e => new
{
quest=e.Qu,
answe=e.Ans
}).ToList();
return Json(ajaxq);
}
と
[HttpPost]
public JsonResult GetSubCat(int? id)
{
//:TODO
if (id == null)
{
//return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var result = db.SubCategories.Where(e => e.CategoryId == id).Select(e => new
{
scat = e.SubCategoryName,
scatid = e.Id
}).ToList();
クロージャ。クリックイベントが発生すると、 'helpquestion'はもはやそれではありません。 –
ありがとうございます。申し訳ありません、名前を忘れました(Closures)。 –