Цитата:
|
Infinity178,
не могу увидеть проблему |
эхх.....
ну поехали с самого начала, на пальцах. 1. Загружается документ 2. Подгружаются данные списков, стили и т.п. 3. После фул загрузки страницы включается обработчик SELECT и добавляет DOM список (DIV > UL > LI) и заполняет список LI с OPTION 4. OPTION:SELECTED помещается путем обработчика в DIV который по сути стоит над UL > LI пример: <select> <option value="">text test 1</option> <option value="" selected="selected">text test 2</option> <option value="">text test 3</option> </select> <div class="jq-select-wrap"> <div class="jq-select-text">text test 2</div> <div class="jq-select-list"> <ul> <li>text test 1</li> <li class="sel">text test 3</li> <li>text test 3</li> </ul> </div> </div> Дальше у нас в списке <option>...</option> некоторые пункты имеют пробелы перед названием и нам нужно их удалить. Включаем replace, функция запускается одновременно с обработчиком DOM списка, тут я нашел два пути: А: Мы берем .text() из выбранного пункта option:selected убираем лишнее и вставляем в DIV (в примере: div.jq-select-text) - минус: не работает на вновь создавшихся списках В: Мы берем .text() из div.jq-select-text и убираем лишние символы, работает на всех списках, но при изменении option:selected функция replace игнорирует нужный div. |
У вас стилизация выпадающего списка (подмена его) посредством ul li, при этом выпадающие списки скрываются, тогда зачем вы вставляете в эти списки эти пробелы, если их надо удалит в LI?
Я сперва не понял - по базе SELECT ..., воспринял как запрос к базе и выдача для списка, так как тут и ajax и .... в общем все в куче. |
в том то и дело что пробелы должны сохраниться в LI и только в выбранном пункте их не должно быть. Ема ё - ну хоть кто нибудь смотрел скрины???
|
По мультикам не всегда видна истина )
Тут надо знать как организован выбор в этом стилизованном списке, если это помещение выбранного LI в верх списка (остальные после выбора скрываются), то нужно запоминать текст его в data, чтобы потом восстановить, а для показа удалить пробелы. Если выбранное значение хранит другой элемент, то удалять пробелы из помещаемого в него текста. |
Цитата:
http://learn.javascript.ru/play/WGCLgb |
Infinity178,
долго молчал партизан :cray: |
:) так теперь вопрос на засыпку - я правельно понял что чистка пробелов происходит в styler() - ?
только эту строчку добавили? if (el.val() === '') { divText.text(selectPlaceholder).addClass('placeholder'); } else { divText.text(optionSelected.text().replace(/\s+/g,'')); } |
Infinity178,
строки 675 и 419 по ссылке в 17 посте файл jquery.formstyler.js |
Часовой пояс GMT +3, время: 04:53. |