2013-12-04 6 views
0

Мой сайт может быть found here, и я сейчас спотыкаюсь о одной проблеме. Я думал, что функции не работают в порядке и должны были исправить некоторые проблемы в моем собственном коде. Теперь, когда страница обновляется, я вижу, что год выбран, а затем я вижу, что коробка «make» изменяется на «LOADING ...», прежде чем она изменится на «Acura». Проблема в том, что я думаю, что «щелчок» и «изменение» для этого раскрывающегося списка происходит до того, как он изменит значение.Замедление функций

Просто так ясно, что моделирование щелчка и изменения там, чтобы произошло событие изменения для этого виджета 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

Это больше ответа на вопрос, чем решение проблемы, но вы можете либо позвонить makeChange() в конце вашей yearChange() функции, или вы можете установить таймер на makeChange() вызова на долю секунды, может быть достаточно времени, чтобы они выполняются в правильном порядке:

yearChange(); 
setTimeout(makeChange, 200); // 200 ms 
1

Почему бы не сделать эти две функции работают вместе, так что обратный вызов вызывает второе событие, которое вы хотеть. Вы посмотрели jQuery promise()?

$('#selector').promise().done(function() { /* Do something */ });

Смежные вопросы