У меня есть файл, test.html
, и я добавляю к нему другой файл, appended.html
ему по разным причинам. В файле appended.html
есть javascript, и я ссылаюсь на функцию, appendedFn
, определенную в appended.html
в функции в test.html
, testFn
.JQuery append with scope scope scope
Это все работает отлично, но я только начал осуществлять Backbone маршрутизатор, и один из маршрутов моего маршрутизатора вызывает testFn
, но по какой-то причине я получаю ReferenceError когда testFn
звонки appendedFn
, но только когда testFn
вызывается из маршрутизатор. Он говорит appendedFn is not defined
, и я думаю, что это связано с тем, что маршрутизатор не имеет доступа к содержимому, которое я добавил?
Это выглядит примерно так:
test.html:
function testFn() {
$('#someObj').append(anotherObj); //anotherObj contains the contents of appended.html
appendedFn(); //defined in appended.html
}
router.js:
var Router = Backbone.Router.extend({
routes: {}, //routes
goSomewhere: function() {
testFn();
}
Edit: Я могу успешно позвонить testFn
из внутри test.html
. Кроме того, когда я распечатываю div, к которому я добавил appended.html
(до того, как я попробую позвонить appendedFn
), он правильно распечатает добавленный html и javascript. По какой-то причине, когда я вызываю testFn
с маршрутизатора, загружаются html и javascript (о чем свидетельствует печатное содержимое div), но он не может получить доступ к содержимому (не html или javascript appended.html
).
Благодарим за ответы, я понимаю, что это может быть очень запутанная статья, но я пытался ее проработать целую часу часов, и я не могу понять это.
трудно сказать без дополнительной информации, но я бы предположил, что вы выполняете этот метод в маршрутизаторе _before_, загрузился дополнительный файл. –