Несколько экземпляров (this), ссылающихся на разные элементы в jQuery

#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 области действия любой из ваших функций.