我正在建立一个问题,一次显示两个问题。
当我使用类“MCQRadio”推送单选按钮时,会触发单击处理程序,但它仅适用于第一页。 GridRadio的clickhandler适用于所有页面。
我做错了什么?
这是代码:
<script language="javascript">
$(document).ready(function()
{
$(".page-number").live("click", function()
{
var page = parseInt($(this).html());
var progressbarValue = ((page / $("#NumberOfPages").val()) * 100);
var catId = $("#CategoryID").val();
$.ajax(
{
url: '@Url.Action("QuestionList")',
data: {
"categoryId": catId,
"page": page
},
success: function(data)
{
$("#question-list").html(data);
$("#progressbar").progressbar("value", progressbarValue);
$("#progresstext").html("<p>" + Math.round(progressbarValue) + "% gennemgået</p>");
}
});
});
$('.MCQRadio').click(function()
{
var button = $(this);
var question_id = button.attr('question-id');
var mcq_id = button.attr('mcq-id');
$('#savingquestion').fadeIn();
$.ajax(
{
url: '/SaveSurveyAnswers/SaveMCQAnswer',
data: {
"mcq_id": mcq_id,
"question_id": question_id
},
success: function(data)
{
button.parent().parent().attr('id', "answered");
$('#savingquestion').fadeOut();
}
});
});
$('.GridRadio').live('click', function()
{
var button = $(this);
var row_id = button.attr('row-id');
var column_id = button.attr('column-id');
var question_id = button.attr('question-id');
$('#savingquestion').fadeIn();
$.ajax(
{
url: '/SaveSurveyAnswers/SaveGridAnswer',
data: {
"row_id": row_id,
"column_id": column_id,
"question_id": question_id
},
success: function(data)
{
// Hvis ActionControlleren returnerer complete, betyder det at spørgsmålet er fuldt besvaret.
// Hvis dette er tilfældet, skal id på den omringende table og div ændres, således at der kommer
// de rigtige farver for besvarede spørgsmål
$('#savingquestion').fadeOut();
if (data == "complete")
{
var table = button.closest('table');
var div = button.closest('div');
if (table.attr('id') != "answeredTable")
{
table.attr('id', 'answeredTable');
}
if (div.attr('id') != "answered")
{
div.attr('id', 'answered');
}
}
}
});
});
});
答案 0 :(得分:1)
也许是因为一个人使用了直播而另一个没有?
变化:
$('.MCQRadio').click(function() ...
要:
$('.MCQRadio').live('click', function() ...
答案 1 :(得分:0)
MCQRadio
的功能不是实时功能,只是普通的点击功能。我猜它也应该是live
函数。
此
$('.MCQRadio').click(function()
应该是
$('.MCQRadio').live('click', function()