首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在代码中触发jQuery更改事件

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

Stack Overflow用户
提问于 2010-11-22 23:48:31
回答 3查看 370K关注 0票数 203

我有一个工作正常的change事件,但我需要让它返回到recurse。

因此,我有一个在更改时触发的函数,它将基于类选择器“更改”其他下拉列表(注意"drop downS",可能有多个)。此代理更改不会触发函数,因此会失败。我怎么才能让它工作呢?

代码

代码语言:javascript
复制
$(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);
        }
    }
}

到目前为止,这些建议似乎是有效的,但是随着change事件触发ajax post,它现在似乎在这里失败了。我将玩弄它,但这是我觉得另一个问题的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-22 23:51:14

使用trigger() method

代码语言:javascript
复制
$(selector).trigger("change");
票数 453
EN

Stack Overflow用户

发布于 2010-11-22 23:52:31

change()方法的无参数形式会触发change事件。您可以编写如下内容:

代码语言:javascript
复制
$(document).ready(function() {
    $("#yourInitialElementID").change(function() {
        // Do something here...
        $(".yourDropDownClass").change();
    });
});
票数 21
EN

Stack Overflow用户

发布于 2016-02-16 17:01:59

使用这一点:

代码语言:javascript
复制
$(selector).trigger("change");

代码语言:javascript
复制
$('#id').trigger("click");

代码语言:javascript
复制
$('.class').trigger(event);

触发器可以是javascript支持的任何事件。希望这对你们所有人来说很容易理解。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4247264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档