İyi çalışan bir değişim etkinliğim var ama bunu tekrarlamak zorundayım.
Bu yüzden bir sınıf seçicisine ("açılan" dikkat edin, "birden fazla olabilir) diğer açılan aşağı" değişecek "değişim tetiklenen bir işlevi var. Bu proxy değişikliği işlevi tetiklemez ve bu nedenle başarısız olur. Nasıl çalıştırabilirim?
kod
$(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);
}
}
}
Şimdiye kadar öneriler işe yarıyor gibi görünüyor, ancak değişiklik olayı bir ajax gönderisini tetiklediğinde şimdi burada başarısız gibi görünüyor. Onunla oynayacağım ama bu hissettiğim başka bir soru için bir şey.