2014-02-05 4 views
1

У меня есть контейнер div ".thumbList", который содержит эскизы как < li>. Я связать Выбирается JQuery UI с ним, как это:JQuery UI - привязать выбранные к будущим элементам

$(".thumbList").selectable(); 

Теперь, когда я нажимаю на какой-либо другой вкладке, изменения контейнера DIV с новым контейнера DIV (тот же класс .thumbList) с использованием Ajax.

Я должен применять также выбранные на новом контейнере. Сейчас я делаю это, чтобы переписать привязку элемента. Но есть много кодов, которые я использую в пределах выбираемого кода, и, используя это снова в ответе ajax, я снова дублирую код на этой странице. Это не подходит для обслуживания кода. Я думаю, что это можно решить с помощью «.on», но не уверен в событии, которое свяжет его для загрузки страницы, и загрузка ajax завершена.

+0

Держите выбранный код на главной странице. После того, как вы выполните запрос ajax и нажмите на страницу, введите код как $ (". ThumbList"). Selectable(); – Don

+0

Как я уже упоминал, код не просто '$ (" thumbList "). Selectable(); . ' Его: ' $ ("thumbList ") выбирается ({ \t фильтр:" литий", \t AutoRefresh: правда, \t остановка: функция() { \t \t selectedItemArr = []; \t \t selectedItemIdArr = []; \t \t $ (".ui выбранных", это) .each (функция() { \t \t \t selectedItemArr.push ($ (это) .attr ("ID")); \t \t \t selectedItemIdArr.push ($ (this) .data ("id")); \t \t}); \t \t $ ("# selectedCount"). Текст ("[" + selectedItemArr.length + "]"); \t \t updateSelectedList ($ (". ThumbList"). Data ("type")); \t} }); ' Должен ли я дублировать эти строки? – Gaurav

+0

Gaurav, я только что написал ответ. – Don

ответ

2

Держите $(".thumbList").selectable(); в отдельной функции на главной странице.

function iniThumbList(){ 
    $(".thumbList").selectable(/* wt ever the your remaining code */); 
} 

После вызова инициализации документа iniThumbList(); Это исходное поведение вашего кода. Теперь после завершения ajax, когда у вас есть новый контент внутри DOM-вызова iniThumbList(); Таким образом, вам не нужно повторять код, и его легко прочитать даже позже.

$.ajax({ 
    url: "test.html" 
    }) 
    .done(function(html) { 
      $("#results").append(html); 
      iniThumbList(); 
    }); 
Смежные вопросы