AJAX + динамически добавляет функцию java-скрипта на страницу - PullRequest
1 голос
/ 28 марта 2009

Я загружаю часть страницы, используя вызовы AJAX, которые могут содержать определенные в них функции скрипта. К которым прикреплены элементы управления, загружаемые различными событиями. Теперь проблема в том, что когда эти события сработали, я получил ошибку «объект не найден», который указывает на то, что функция не найдена / не определена. При использовании Firebug я вижу, что функция определена и доступна. Так как я могу убедиться, что браузер может найти соответствующую функцию.

Я пытался, но я либо что-то упустил, либо он не работает, вот что я делаю

       Page
           --->Partial View A
                  ----->Partial View B

Теперь страница загружает частичную A с Ajax-вызовами, которая дополнительно загружает частичную B с помощью Ajax-вызовов. Обе частичные A & B содержат несколько функций java-скриптов, которые логически связаны только с ними, а не с главной страницей. Страницы загружаются нормально, за исключением того, что функции не могут быть выполнены, поскольку появляется «Объект не найден».

Ответы [ 2 ]

3 голосов
/ 28 марта 2009

Вы должны определить функции, используя этот синтаксис:

myFunction = function(foo) {}

не этот синтаксис

function myFunction(foo) {}

Вторая форма не будет работать, когда eval () d (что, вероятно, и происходит)

0 голосов
/ 28 марта 2009

Если вы используете фреймворк или библиотеку, вы должны установить параметр, чтобы оценить скрипт, присутствующий в ответе на запрос ajax. Обычно он называется evalScripts

evalScripts:true

Вы также можете использовать обратные вызовы (успех / ошибка) запроса для запуска событий, чтобы было проще хранить код в одном месте и избегать подобных ситуаций.

Если вы используете обычный javasciprt и объект XmlHttpObject, вам придется вручную найти все теги script в вашем ответе, а затем eval () их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...