#jquery
#jquery
Вопрос:
Поэтому я решил объединить несколько HTML-файлов в один файл, скрывая и показывая divs вместо того, чтобы связывать каждую страницу. Я также объединил все разные сценарии в один тег.
Однако не весь код выполняется больше — в частности, функции, ссылающиеся на «(this)» — это потому, что его можно использовать только один раз на страницу?
Спасибо.
Комментарии:
1. Я подозреваю, что это как-то связано с тем, как вы объединили свой код javascript. Можете ли вы привести примеры того, что раньше работало, и как вы объединили это так, чтобы оно не работало сейчас? Может быть, мы сможем определить проблему.
Ответ №1:
нет. «это» зависит от контекста рассматриваемого javascript. никакая комбинация файлов JS никогда не повлияет на контекст «this». «это» имеет значение только внутри функции или метода. размещение методов или функций рядом друг с другом никоим образом не вкладывает их друг в друга.
что, скорее всего, произошло, так это загрязненное глобальное пространство имен. если, например, два файла содержат переменную с именем var link
, то какой бы код ни появился позже, он будет иметь приоритет.
Ответ №2:
Нет. this
относится к вызываемому элементу DOM. В области jQuery this
используется функция конструктора $()
jQuery to become $(this)
, которая в основном позволяет использовать функциональность jQuery для вызываемого элемента DOM.
Я подозреваю, что у вас есть другие конфликтующие проблемы.
Ответ №3:
Вы можете использовать функцию jQuery.proxy для изменения this
области действия любой из ваших функций.