2016-11-30 5 views
-1

Я новичок в ajax, и это первый раз, когда я использую метод jQuery load(). Пример ниже не работает. Переменная внутри doSomething() не определена (из-за асинхронной позвонить мне кажется)Как получить доступ к методам внешней загрузки?

var x = jQuery("#div1 a"); // x is used in different parts of the code, not only for the doSomething function 

jQuery('.test').load(homeUrl, function() { 
    doSomething(); 
}; 

function doSomething() { 
    x.css('background-color', 'yellow'); 
} 

Итак, я делаю так (что повторы), и она работает:

function doSomething() { 
    var x = jQuery("#div1 a"); 
    x.css('background-color', 'yellow'); 
} 

Но я хотел бы знать, есть ли лучший способ справиться с переменной или даже если я делаю что-то неправильно.

+2

'this.x' - Серьезно? –

+0

Хотя вопрос не очень ясен, но вы можете [загрязнять глобальное пространство имен] (http://stackoverflow.com/questions/8862665/what-does-it-mean-global-namespace-would-be- polluted # 13352212) –

+0

@ sid-m спасибо :) Поскольку я использую эту 'x'variable в других функциях, мне разумно определить ее в глобальном объекте. – viery365

ответ

1

Вы могли бы передать й функцию DoSomething следующим образом:

вара х = JQuery ("# div1 а");

+0

Спасибо! :) Это хорошая идея, но внутри этой функции в действительности у меня много переменных, которые уже определены до этого, и в этой ситуации мне пришлось бы использовать множество параметров (я думаю?). – viery365

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