javascript - 如何在代码中触发 jQuery 更改事件

标签 javascript jquery jquery-events

我有一个工作正常的更改事件,但我需要让它递归。

所以我有一个在更改时触发的函数,它将基于类选择器“更改”其他下拉菜单(注意“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) {
        // 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 帖子,它现在似乎在这里失败了。我会玩弄它,但这是我觉得的另一个问题。

最佳答案

使用 trigger() method

$(selector).trigger("change");

关于javascript - 如何在代码中触发 jQuery 更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247264/

相关文章:

javascript - Ajax json 从域中获取数据

javascript - 异步 json javascript 查询失败,仅在 IE 上使用 unicode 字符

javascript - 将点击链接的目标 URL 传递给 javascript/jQuery

javascript - 如何防止文本和/或页面内容在 html 和 javascript 中双击突出显示?

javascript - 将字符串数组转换为一个数组JS

javascript - jQuery Preventdefault() 函数不起作用

javascript - 在 JavaScript 中格式化动态表格

javascript - 如何在 JavaScript 中模拟多个按键?

javascript - 循环计时器sgv html js css,当变大时,线条与大小不匹配

php - 使用 AJAX/jQuery 删除 mysql 中的行(Zend Framework 1.12)