0
我有以下代码,它的工作原理是这样的;如何在第一次自动触发事件后触发第二个事件
我得到的URL参数,我做了一个事件,所以根据URL参数自动选择下拉选项。这个事件触发OK。
// getURLParameter function [....]
setTimeout(function() {
var currencySelected = getUrlParameter('currency');
$('#currency').val(currencySelected);
console.log('url currency is ' + currencySelected);
}, 1500);
现在它遵循第二事件触发器这实际上是调用Ajax请求的基础上选择的选项将数据传递给我的当前页面。
只有当我没有基于getURLParameter创建第一个事件时,这个工作方式才起作用。在这两种情况下,手动选择下拉选项都会触发。
$('#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 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
是的它,我知道它甚至在尝试之前就会工作。它没有手动触发触发事件,所以它可以被调用ajax请求的事件顺序抓住! – Vasikos