Показать сообщение отдельно
  #1 (permalink)  
Старый 02.03.2015, 21:20
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

зависимые UL LI вместо select (Застрял)
Добрый день! Переделал готовый скрипт зависимых селектов где использовались value о style для связи под атрибут data-id.
Вся работает как нужно. Но потребовалось переделать так, что бы связать списки из ul и li.

Прошу помощи... Пока вот что сделал, как дальше не могу понять...
(как переделать оставшиеся селекты и оптинсы под ul li)

Смысл сделать зависимые выпадающие ul li (Здесь как пример я убрал все флюшки для стилизации выпадения)

Как доделать скрипт под ul li, а не select option...???

<ul id="one">
   <li data-id="fg_0">
       <label for="test1">Значение</label>
   </li>
   <li data-id="fg_1">
       <label for="test2">Значение</label>
   </li>
   <li data-id="fg_2">
       <label for="test3">Значение</label>
   </li>
</ul>

<ul id="two">
   <li data-id="fg_0">
       <label for="test4">Значение</label>
   </li>
   <li data-id="fg_1">
       <label for="test5">Значение</label>
   </li>
   <li data-id="fg_2">
       <label for="test6">Значение</label>
   </li>
</ul>


/*! Chained 1.0.0 - MIT license - Copyright 2010-2014 Mika Tuupola */
!function (a, b) {
    "use strict";
    a.fn.chained = function (c) {
        return this.each(function () {
            function d() {
                var d = !0, g = a("option:selected", e).val();

                a(e).html(f.html());
                var h = "";
                a(c).each(function () {
                    var c = a("li", this).attr('data-id');
                    c && (h.length > 0 && (h += b.Zepto ? "\\\\" : "\\"), h += c)
                    alert(c);
                });
                var i;
                i = a.isArray(c) ? a(c[0]).first() : a(c).first();
                var j = a("option:selected", i).val();
                a("option", e).each(function () {
                    a(this).is('[data-id='+h+']') && a(this).val() === g ? (a(this).prop("selected", !0), d = !1) : a(this).is('[data-id='+h+']') || a(this).is('[data-id='+j+']') || "" === a(this).val() || a(this).remove()
                }), 1 === a("option", e).size() && "" === a(e).val() ? a(e).prop("disabled", !0) : a(e).prop("disabled", !1), d && a(e).trigger("change")
            }

            var e = this, f = a(e).clone();
            a(c).each(function () {
                a(this).bind("change", function () {
                    d()
                }), a("option:selected", this).length || a("option", this).first().attr("selected", "selected"), d()
            })
        })
    }, a.fn.chainedTo = a.fn.chained, a.fn.chained.defaults = {}
}(window.jQuery || window.Zepto, window, document);


Запускается так
$("#two").chained("#ont");

Как доделать скрипт под ul li, а не select option...
Ответить с цитированием