我的网站可能是found here,我现在特别绊倒了一个问题。我认为函数没有按顺序运行,并且必须在我自己的代码中修复一些问题。现在当刷新页面时,我看到正在选择的年份,然后我看到“make”框在更改为“Acura”之前变为“LOADING ...”。问题是我认为该下拉菜单的“点击”和“更改”是在更改价值之前发生的。
就是这么清楚,点击和更改的模拟就在那里,以便触发此Prototype小部件的更改事件。 jQuery本身无法做到这一点,因为它是用Prototype构建的。
我的代码:
function yearChange()
{
jQuery("#finder-72--424").val('13080187').change();
$('finder-72--424').simulate('click');
$('finder-72--424').simulate('change');
}
function makeChange()
{
jQuery("#finder-72--425").val('13097610').change( function() {
$('finder-72--425').simulate('click');
$('finder-72--425').simulate('change');
})
}
yearChange();
makeChange();
答案 0 :(得分:1)
为什么不让这两个函数一起工作,以便回调触发你想要的第二个事件。你看过jQuery promise()了吗?
$('#selector').promise().done(function() { /* Do something */ });
答案 1 :(得分:0)
这是问题的答案,而不是解决问题的方法,但您可以在makeChange()
函数的末尾调用yearChange()
,也可以在makeChange()
上设置计时器{1}}要求一瞬间,可能只是足够时间让它们以正确的顺序执行:
yearChange();
setTimeout(makeChange, 200); // 200 ms