如何在第一个自动触发事件后触发第二个事件
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);
我有下面这样工作的代码;
我得到了 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);