2015-08-21 3 views
-2

Ниже я включил скриншот формы F12 в хром.Функция javascript в исходном коде, но не «не определена»

Моя проблема: Uncaught ReferenceError: callModal282876547 не определен. Другие ошибки не являются проблемой.

Я не знаю, относится ли это, но отображаемый код был загружен на страницу с помощью вызова ajax (включая javascript).

Ошибка возникает, когда я нажимаю кнопку, и говорит мне, что функция не определена, но она явно присутствует в коде? Что может вызвать это и как я могу решить эту проблему?

enter image description here

+1

Когда вы говорите, что отображаемый код загружается по вызову AJAX, вы говорите, что тег 'script' был загружен над AJAX и введен в тело? Если да, укажите этот код. Есть трюки в получении нового JS для загрузки и выполнения. – JAAulde

+0

Это несколько не связано с вашим вопросом, но, пожалуйста, просмотрите, если вы ** действительно ** нуждаетесь в отдельной функции callModal для каждого модального. – Dodekeract

+0

Изображение полезно, но вы также должны включить соответствующий код, чтобы для будущих читателей содержание вопроса не зависело только от внешних источников. –

ответ

0

Браузер ничего не знает о новой функции, которую вы принесли с AJAX ответа не знаю. Таким образом, вы должны eval() код декларации, возвращаемый обратным вызовом Ajax, и сделать его доступным для DOM.

+0

Да, я понял, что это действительно проблема. Новый код, который я провел в ajax с помощью ajax, может содержать функцию готовности документа (или несколько). Могу ли я назвать все это при выполнении ajax-вызова? Забавно, что по какой-то причине в первый раз, когда я делаю вызов ajax, функция готовности документа выполняется, а вторая, третья, ... раз она не выполняется. –

+0

Предполагая, что «ответ» - ваш ответ ajax, что-то как это должно работать: 'var scripts = []; response.forEach (функция (ключ, элемент) { scripts.push (element.innerHTML); }); scripts.forEach (функция (ключ, элемент) { eval (элемент); }); ' – PersyJack

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