У меня есть событие изменения, которое работает нормально, но мне нужно, чтобы оно повторялось.
Итак, у меня есть функция, которая запускается при изменении, которое изменяет другие раскрывающиеся списки на основе селектора класса (обратите внимание на раскрывающийся список, их может быть несколько). Это изменение прокси не запускает функцию и поэтому не работает. Как заставить его работать?
Код
$(document).ready(function () {
var activeDropBox = null;
$("select.drop-box").change(function () {
var questionId = $(this).attr("questionId");
var selectedAnswer = $(this).val();
activeDropBox = this;
alert(this.questionId);
$.ajax(
{
type: "POST",
url: answerChangedActionUrl,
data: { questionId: questionId, selectedValue: selectedAnswer },
success: function (data) {
SetElementVisibility(data.ShowElement, questionId);
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('XMLHttpRequest:' + XMLHttpRequest.responseText);
alert('textStatus:' + textStatus);
alert('errorThrown:' + errorThrown);
}
});
});
function SetElementVisibility(visible, questionId) {
// I would like each child to then trigger the change event...
$(".childOf" + questionId)[visible ? 'show' : 'hide']('slow');
// Suggested code
//$(".childOf" + questionId + " select").trigger("change");
if (!visible) {
$(".childOf" + questionId + " select").attr('selectedIndex', 0);
}
}
}
Предложения до сих пор кажутся работающими, но поскольку событие изменения запускает сообщение ajax, теперь, похоже, здесь не работает. Я собираюсь поиграться с этим, но это уже другой вопрос, который я чувствую.