2010-03-19 2 views
3

Я разрабатываю приложение с использованием jQueryUI. Я также использую Themeroller. Я хочу иметь как можно больше моих стилей с помощью темы, поэтому, если мне нужно изменить некоторые стили, мне просто нужно создать новую настраиваемую тему (или загрузить существующую тему).jQueryUI selectable: не может применить тему к выбранному элементу (класс «ui-selected»)

Я пытаюсь использовать «выбираемое» взаимодействие в jQueryUI. Он работает так, как должен - в Firebug я вижу, что класс «ui-selected» применяется к элементу, который я выбираю. Тем не менее, нет визуальной подсказки, что элемент был выбран. Я просмотрел файл CSS (jquery-ui-1.8rc3.custom.css, который я загрузил с Themeroller page), и я не вижу объявления для класса «ui-selected». Когда я загрузил jQueryUI и тему, я проверил каждый вариант, в том числе один для «selectable».

Как я могу сделать свою тему определением класса «ui-selected»? Очевидно, я мог бы просто создать свою собственную декларацию стиля, но это решение не идеально, если я когда-либо захочу изменить тему.

Я использую jQuery 1.4.2 и jQueryUI 1.8rc3.

ответ

1

Извините, ответ отстой, но вы не можете.

Это функциональность, которую должен был бы добавить ThemeRoller, и вы ничего не можете сделать, чтобы автоматически добавлять к ней созданные стили.

Если вы посмотрите на demo pages, они также вручную сделать заявление стиля для .ui-selected

+0

Это то, что я боялся, но я подумал я все равно. Это заявление на демо-странице (на вкладке Theming) заставило меня подумать, что это возможно: «JQuery UI Selectable plugin использует jQuery UI CSS Framework для стилизации его внешнего вида, включая цвета и фоновые текстуры. Мы рекомендуем использовать ThemeRoller инструмент для создания и загрузки пользовательских тем, которые легко создавать и поддерживать ». – Jeremy

+0

@Jeremy - я бы определенно добавил запрос об этом, если в нем уже нет. К сожалению, я не могу сказать, есть ли на данный момент, потому что система билетов в jQuery UI отключена, но скоро она должна быть исправлена: http://dev.jqueryui.com/report/10?P=селективный –

5

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

$("#selectable ul").selectable({ 
    unselected: function(){ 
    $(".ui-state-highlight", this).each(function(){ 
     $(this).removeClass('ui-state-highlight'); 
    }); 
    }, 
    selected: function(){ 
    $(".ui-selected", this).each(function(){ 
     $(this).addClass('ui-state-highlight'); 
    }); 
    } 
}); 
$("#selectable li").hover(
    function() { 
    $(this).addClass('ui-state-hover'); 
    }, 
    function() { 
    $(this).removeClass('ui-state-hover'); 
    } 
); 
+0

Отличный ответ. Я должен был внести несколько изменений, чтобы заставить его работать правильно: в строке 1: измените '$ (« # selectable ul »)' на '$ (« # selectable »)' и в строке 3: измените '$ (". Ui -state-highlight ", this)' to '$ (": not (.ui-selected) ", this)'. – MCS

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