kupriyanenko / jbone

JavaScript Library for Events and DOM manipulation. Replaces jQuery for Backbone (2.5kb gzipped)
http://jbone.js.org
MIT License
279 stars 35 forks source link

Add show/hide and enabled/disabled #13

Closed wwwboy closed 9 years ago

wwwboy commented 10 years ago

Т.к ВВ используется по большей части для одностраничных приложений, а приложения всегда работают с формами, а формы с данными и наиболее частыми операциями с элементами являются данные 4 оператора - нельзя ли их добавить в библиотеку?

kupriyanenko commented 10 years ago

Они будут добавлены в расширенной версии jBone, которая будет совместима с Bootstrap (сейчас разработка идет в этой ветке https://github.com/kupriyanenko/jbone/tree/bbone). Так же будет возможность собрать свою кастомную сборку с нужными методами.

wwwboy commented 10 years ago

было бы хорошо набирать свою конфигурацию, потому как бустраптнутая версия не всем нужна

kupriyanenko commented 10 years ago

Как решение могу предложить вам имплементировать их только в своем проекте в виде плагинов, делается это просто. Вот код близкий к тмоу, что вам нужно

(function() {
var isHidden = function(el) {
    return win.getComputedStyle(el).display === "none";
}
var showHide = function(elements, show) {
    var display;

    elements.forEach(function(el) {
        if (!el.style) {
            return;
        }

        display = el.style.display;
        if (show) {
            if (display === "none") {
                el.style.display = "";
            }

            if (el.style.display === "" && isHidden(el)) {
                el.style.display = "block";
            }
        } else {
            el.style.display = "none";
        }
    });

    return elements;
}

jBone.fn.show = function() {
    return showHide(this, true);
};

jBone.fn.hide = function() {
    return showHide(this);
};
});

Узкое место здесь этот кусок, el.style.display = "block";, но вы можете модифицировать логику и в нужных вам кейсах назначать el.style.display = "inline-block";

Код взят отсюда https://github.com/kupriyanenko/jbone/blob/extend/src/extend.js#L247

wwwboy commented 10 years ago

я понимаю что это можно сделать, ноя изложил свои доводы выше - думаю они разумны Хотел задать вопрос: каков принцип отбора в библиотеку методов? по каким критериям отобраны те что существуют?

kupriyanenko commented 10 years ago

@wwwboy В первую очередь попадают методы, которые необходимы для Backbone, потом наиболее часто используемые методы, которые не конфликтуют со стандартами ECMA. Думаю ваши методы тоже можно добавить, но все равно в том виде, в котором они сейчас в ветке extend, в master они не попадут, так как не пройдут все тест кейсы. Если есть желание, можете помочь разработке пул реквестом)

wwwboy commented 10 years ago

ок, понял. Против такого подхода не имею ничего против)

henryruhs commented 9 years ago

This can't be closed?

kupriyanenko commented 9 years ago

no, I think should be.