Mootools - необходимо изменить имя выпадающего списка, чтобы получить значение - PullRequest
0 голосов
/ 10 августа 2011

См. FIDDLE

Попытка заставить оповещения срабатывать после 3-го выпадающего списка, но они не будут.Я использую эти 3 выпадающих в форме.Первый и второй раскрывающиеся списки отправляют свои значения соответствующим образом, а третий - нет, поскольку к раскрывающемуся списку не применяется правильное имя.

Я не могу понять, почему не сработают последние оповещения, поэтомувходные данные о том, почему это было бы очень полезно.

Я набросал предупреждения, чтобы я знал, как далеко я прохожу через javascript, но последние пару предупреждений не срабатывают.м всего яваскрипт идиот.Чем больше я думаю, что понимаю, тем меньше мне кажется, что я могу это сделать, поэтому помощь приветствуется.

1 Ответ

1 голос
/ 10 августа 2011

если ваша цель в конечном итоге получить событие, запускаемое при выборе на уровне 3, упростите так:

(function() {
    var level1 = document.getElements("div.style-sub-1"), level2 = document.getElements("div.style-sub-2");
    var beer = document.id("beerStyle");

    beer.addEvent("change", function() {
        level1.setStyle("display", "none");
        level2.setStyle("display", "none");

        var val = this.get("value");
        if (!val.length)
            return;

        document.id(this.get("value")).setStyle("display", "block");
    });

    // delegate the other selects
    $(document.body);
    document.body.addEvents({
        "change:relay(div.style-sub-1 select)": function() {
            // reset level 2
            level2.setStyle("display", "none");
            var val = this.get("value");

            if (!val.length)
                return;

            var target = document.id(val);
            if (target)
                target.setStyle("display", "block");        
        },
        "change:relay(div.style-sub-2 select)": function() {
            alert("You chose: " + this.get("value"));
        }
    });

})();

проблема в том, что если на уровне 3 есть только один выбор, который выигралне вызвать изменения - так что вам действительно следует сохранять состояние последней хорошей крошки, о которой вы знаете, например, гибрид.

http://jsfiddle.net/dimitar/mxaB5/2/

с помощью одного обработчика событий для делегированного типа выбора.Я надеюсь, что это даст вам некоторые идеи - в конечном итоге вы можете работать всего с 2 функциями для хранения любых данных, которые вам нужны.

Часть вашей проблемы в том, что выпадающие списки 2-го уровня могут ссылаться на значения, которые не представлены в доменеформа div и выбор.

...