如何在代码中触发jQuery change事件

2020/10/21 14:41 · javascript ·  · 0评论

我有一个运行正常的更改事件,但我需要递归进行更改。

因此,我有一个在更改时触发的函数,该函数将基于类选择器“更改”其他下拉菜单(请注意“ 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);
        }
    }
}

到目前为止,这些建议似乎可行,但是由于change事件触发了ajax发布,因此现在似乎在此处失败。我将尝试使用它,但这是我感觉到的另一个问题。

使用trigger()方法

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

对我来说$('#element').val('...').change()是最好的方法。

change()方法的无参数形式触发一个change事件。您可以这样写:

$(document).ready(function() {
    $("#yourInitialElementID").change(function() {
        // Do something here...
        $(".yourDropDownClass").change();
    });
});
$(selector).change()

。更改()


.trigger(“ change”)

替代方案越长越,更好地进行抽象。

.trigger(“ change”)

$(selector).trigger("change")

使用那个:

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

要么

$('#id').trigger("click");

要么

$('.class').trigger(event);

触发事件可以是javascript支持的任何事件。希望大家都容易理解。

本文地址:http://javascript.askforanswer.com/ruhezaidaimazhongchufajquery-changeshijian.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!