2014-10-27 2 views
1

В последнее время я начал использовать jquery для скрипта Tampermonkey и не выполняет логическую последовательность в функциях. Это код:Последовательность функций в jQuery

$(document).ready(function(){ 
    if ($(window).attr('location') == 'http:1') { 
     $(window).attr('location', 'http:2'); 
    } 
}); 

$(document).ready(function(){ 
    for(var i=2; i<7; i++){ 
     $elem = $('div#ing-' + i).find('span').css('color'); 
      if ($elem == 'rgb(255, 0, 0)'){ 
       $(window).attr('location', 'http:3...&r=' + i); 
     }   
    } 
    if($(window).attr('location')=='http:2'){ 
     $(window).attr('location', 'http:4'); 
    } 
    $('#solicitar').trigger('click'); 
}); 

У меня есть две проблемы,

Первое: Последняя функция

if($(window).attr('location')=='http:2'){ 
     $(window).attr('location', 'http:4'); 
    } 
    $('#solicitar').trigger('click'); 

это тот, который всегда работает, он не запускается для функции, то просто переходите к этой части и делайте это.

Во-вторых: Если я просто запустил цикл FOR (игнорируя другую функцию), первая инструкция должна быть записана, когда i = 6 и i = 2 является последней, что для меня совершенно не имеет смысла +0,7

EDIT: если мой HTML (2) = 'http://www.aaa.com' и HTML (3 и 4) = http://www.aaa.com/index.php?p=bbb атрибут местоположение относится к ним, как то же самое?

+0

Вы пытались установить точку останова и проверять $ (окно) .attr ('location') .. Я тестировал скрипт js и его вызывали в соответствии с последовательностью. – Amitesh

ответ

0

РЕШЕНИЕ. Мне просто нужно добавить задержку, потому что код был запущен быстрее, чем HTTP мог обновить.

setTimeout(function(){ 
    if($(window).attr('location')=='http:1'){ 
     $(window).attr('location', 'http:2'); 
    }}, 5000); 
    $('#solicitar').trigger('click');