如何在第一个自动触发事件后触发第二个事件

How to trigger a second event after the first automatically triggered event

我有下面这样工作的代码;

我得到了 URL 参数并创建了一个事件,因此下拉选项会根据 URL 参数自动 selected。此事件触发正常。

// getURLParameter function [....]

setTimeout(function() {
    var currencySelected = getUrlParameter('currency');
    $('#currency').val(currencySelected);
    console.log('url currency is ' + currencySelected);
}, 1500);

现在它遵循 第二个事件触发器 ,它实际上调用 ajax 请求以根据 selected 选项将数据传递到我的当前页面。

只有当我不根据 getURL 参数创建第一个事件时,这个才有效。在这两种情况下,它都是通过手动 select 手动输入下拉选项来触发的。

$('#currency').on('change', function() {
    //console.log(JSON.stringify(id));
    console.log('on change triggered');
    myk = $("#currency").val();
    $.ajax({
        url: "/exchange_rates/" + myk,
        type: "GET",
        data: $(myk).serialize(),
        dataType: 'json',
        success: function(res) {
            // my success stuff
        },
        error: function(xhr, status, error) {
            console.log(xhr.responseText);
            return false;
        }
    });
});

如果想知道我的 EJS select 代码是什么样子

<select id="currency" name="currency" class="form-control">
    <option value="">Select currency</option>
    <% for(var i=0; i<data.length; i++) {%>
    <option value="<%=data[i].currency%>"><%=data[i].currency%></option>
    <% } %>
</select>

jQuery v2.1.4

尝试trigger方法,例如:

setTimeout(function() {
    var currencySelected = getUrlParameter('currency');
    $('#currency').val(currencySelected);
    console.log('url currency is ' + currencySelected);

    $('#currency').trigger("change"); // manually fire the change event

}, 1500);