放慢功能



我的网站可以在这里找到,我现在遇到了一个特别的问题。我认为函数运行不正常,必须修复自己代码中的一些问题。现在,当页面刷新时,我会看到所选的年份,然后我会看到"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

最新更新