Где размещать действия jQuery для загружаемых извне страниц с помощью вкладок пользовательского интерфейса

Мне интересно, где я должен определить свои действия jQuery для загружаемых извне страниц с помощью вкладок пользовательского интерфейса.

Так, например, у меня есть страница index.html, включающая 3 вкладки. При нажатии на каждую вкладку загружаются extern1.html, extern2.html, extern3.html. Этим трем внешним страницам требуется несколько действий jQuery (действия при загрузке, действия при нажатии и т. д.).

Когда я помещаю весь код jQuery для внешних страниц в индекс и загружаю одну из внешних страниц, этот код jQuery не будет влиять на загруженную внешнюю страницу, когда я нажимаю на вкладку.

Когда я помещаю весь код jQuery для внешних страниц на саму внешнюю страницу, это вызовет проблемы (я думаю), потому что, когда я загружаю вкладку/внешнюю страницу несколько раз, код jQuery будет загружаться снова и снова, верно?

Итак, куда я должен поместить свой код jQuery? (какой-то пример?)

Большое спасибо!


person Guido Lemmens 2    schedule 27.01.2010    source источник


Ответы (3)


Вы можете поместить свой код в обработчик событий с загрузкой вкладок:

$('.your-tabs-container').tabs({
   load: function(event, ui) { /* your code here */ }
});

or:

$('.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
person nkrkv    schedule 27.01.2010

поместите свой jQuery в материнский html и используйте функцию .live() для привязки нужных вам событий. документы здесь.

person Reigel    schedule 27.01.2010

Вы должны включать библиотеку jQuery только один раз! На вашей индексной странице. На внешних страницах вы должны включить javascript, используемый для этой отдельной внешней страницы:

Показатель:

  • Включить библиотеку jQuery

Внешний 1:

  • Функции jQuery, относящиеся к внешней странице 1

Внешний 2:

  • Функции jQuery, относящиеся к внешней странице 2

Я бы так и сделал :-)

person Kordonme    schedule 27.01.2010