Ich habe ein Änderungsereignis, das gut funktioniert, aber ich muss es wiederkehren lassen.
Ich habe also eine Funktion, die bei einer Änderung ausgelöst wird und andere Dropdowns basierend auf einem Klassenselektor "ändert" (beachten Sie "Dropdowns", es kann mehr als eine geben). Diese Proxy-Änderung löst die Funktion nicht aus und schlägt daher fehl. Wie kann ich es zum Laufen bringen?
Code
$(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);
}
}
}
Die bisherigen Vorschläge scheinen zu funktionieren, aber da das Änderungsereignis einen Ajax-Beitrag auslöst, scheint es hier jetzt zu scheitern. Ich werde damit herumspielen, aber das ist etwas für eine andere Frage, die ich fühle.
javascript
jquery
javascript-events
4imble
quelle
quelle
Antworten:
Verwenden Sie die Methode trigger ()
quelle
change()
? Oder ist es nur Präferenz?für mich
$('#element').val('...').change()
ist der beste weg.quelle
Die parameterlose Form der change () -Methode löst ein
change
Ereignis aus. Sie können so etwas schreiben wie:quelle
.Veränderung()
.trigger ("ändern")
Längere langsamere Alternative, besser für die Abstraktion.
.trigger ("ändern")
quelle
Verwende das :
ODER
ODER
Auslöser kann jedes Ereignis sein, das Javascript unterstützt. Ich hoffe, es ist für Sie alle leicht verständlich.
quelle