Где разместить действия jQuery для страниц, загружаемых извне, по вкладкам пользовательского интерфейса
-
23-09-2019 - |
Вопрос
Мне интересно, где мне следует определить свои действия jQuery для страниц, загружаемых извне, с помощью вкладок пользовательского интерфейса.
Например, у меня есть страница index.html, включающая 3 вкладки.При нажатии на каждую вкладку загружаются extern1.html, extern2.html, extern3.html.Этим трем внешним страницам требуется несколько действий jQuery (действия по загрузке, действия по клику и т. д.).
Когда я помещаю весь код jQuery для внешних страниц в индекс и загружаю одну из внешних страниц, этот код jQuery не повлияет на внешнюю загруженную страницу, когда я нажимаю на вкладку.
Когда я помещаю весь код jQuery для внешних страниц в саму внешнюю страницу, это вызовет проблемы (я думаю), потому что когда я загружаю вкладку/внешнюю страницу несколько раз, он будет загружать код jQuery снова и снова, верно?
Итак, куда мне нужно поместить свой код jQuery?(какой-то пример?)
Большое спасибо!
Решение
Вы можете поместить свой код в обработчик событий с загрузкой табуляции:
$('.your-tabs-container').tabs({
load: function(event, ui) { /* your code here */ }
});
или:
$('.your-tabs-container').bind('tabsload', function(event, ui) {
/* your code here */
});
В этих случаях, согласно документации, вы можете получить необходимую информацию пользовательского интерфейса из ui
аргумент:
ui.tab // anchor element of the selected (clicked) tab
ui.panel // element, that contains the selected/clicked tab contents
ui.index // zero-based index of the selected (clicked) tab
Другие советы
поместите свой jQuery в материнский html и используйте .live()
функция для привязки нужных вам событий.документы здесь.
Библиотеку jQuery следует включать только один раз!На вашей индексной странице.На внешних страницах вы должны включить JavaScript, используемый для этой отдельной внешней страницы:
Индекс:
- Включить библиотеку jQuery
Внешний 1:
- Функции jQuery, относящиеся к внешней странице 1
Внешний 2:
- Функции jQuery, относящиеся к внешней странице 2
Я бы так сделал :-)