2013-06-05 4 views
2

Я использую jquery picklist в своем веб-приложении. Мне нужно время от времени обновлять контент, и каждый раз, когда я делаю это, все элементы дублируются в списке.jquery picklist удалить items

код я использую это:

addAssetsToModal = function(assets){ 
     $("#pckAssets").empty(); 
     assets.each(function(asset){ 
      $("#pckAssets").pickList("insert", 
       { 
        value: asset._id._oid, 
        label: asset.name, 
        selected: isAssetOnDashboard(asset._id._oid) 
       }); 
     }); 
    }, 

Прежде чем добавлять элементы я хотел бы, чтобы удалить любой существующий элемент.

Мои попытки:

$("#pckAssets").empty(); //doesn't work 
$('#pckAssets option').remove(); //doesn't work 

Спасибо.

+0

Вам нужно очистить контейнер или целевой список? –

ответ

4

Я не могу найти способ найти в wiki для очистки элементов.

Учитывайте, что плагин начинается с выбора, но отображает два разных значения ul-li для исходного и целевого списка. Так что если вы очищаете ваш выбор объекта вы снимите выбор, но не уже оказали ули-Ли

Я думает, что есть два способа:

  1. разрушающих и переинициализации: вы можете уничтожить и восстановить контроль; списки будут быть очищены, как следствие (виджет должен реализовать уничтожить Митос, и это делает)
  2. ясно список: очистить два уль-Ли с помощью JQuery:

Первый путь (я предпочитаю это):

$("#basic").pickList("destroy"); 
$("#basic").pickList(); 

Второй способ (немного Hacky):

$('.pickList_sourceList li').remove(); 
$('.pickList_targetList li').remove(); 

Вот рабочий скрипка двумя способами: http://jsfiddle.net/IrvinDominin/GVKFB/

+0

Первый способ не работает, я получаю ошибку «destroy is not a function». У меня не было времени проверить его, поэтому я сделал второй способ, ведьма работает отлично. Спасибо Эдварду. –

+0

@ZelterAdy рад помочь вам! Но первый способ работает, проверьте скрипт :-) –

+0

У меня также есть исключение 'TypeError: Object # не имеет метода' _destroy '', когда используется первый способ, поэтому я попробовал второй способ, тогда проблема в том, что я не может повторно инициализировать подборщик, потому что вызов '$ (« # basic »). pickList();' does not add it back –

Смежные вопросы