我的网站可以在这里找到,我现在遇到了一个特别的问题。我认为函数运行不正常,必须修复自己代码中的一些问题。现在,当页面刷新时,我会看到所选的年份,然后我会看到"make"框更改为"LOADING…",然后再更改为"Acura"。问题是,我认为该下拉列表的"点击"one_answers"更改"是在它更改值之前发生的。
很明显,点击和更改的模拟就在那里,这样就触发了这个原型小部件的更改事件。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();
为什么不让这两个函数一起工作,以便回调触发您想要的第二个事件。你看过jQuery promise()吗?
$('#selector').promise().done(function() { /* Do something */ });
这更多的是问题的答案,而不是问题的解决方案,但您可以在yearChange()
函数结束时调用makeChange()
,或者在makeChange()
调用上设置一个计时器,时间可能刚好足够让它们按正确顺序执行:
yearChange();
setTimeout(makeChange, 200); // 200 ms