如何在代码中触发jQuery的change事件
如何在代码中触发jQuery的change事件
我有一个工作正常的change事件,但我需要它递归执行。
所以我有一个在change时触发的函数,它会根据类选择器(注意“drop downS”,可能有多个)“改变”其他下拉框。这个代理更改不会触发函数,因此失败。我该如何让它工作?
代码
$(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) { // 我希望每个子元素都触发change事件... $(".childOf" + questionId)[visible ? 'show' : 'hide']('slow'); // 建议的代码 //$(".childOf" + questionId + " select").trigger("change"); if (!visible) { $(".childOf" + questionId + " select").attr('selectedIndex', 0); } } }
到目前为止,建议似乎都有效,但由于change事件触发了一个ajax post,现在它似乎在这里失败了。我会试试看,但我觉得这是另一个问题。