Re[16]: jQuery – Javascript нового поколения
От: Mamut Швеция http://dmitriid.com
Дата: 13.08.07 13:59
Оценка:
M>>Если ты нашел ошибки даже в такой популярной и используемой либе, как jQuery, многкратно оттестированной, активно развиваемой, и т.п., то что уж говорить о либе, круг пользователей которой ограничивается, ну, десятком человек

AKS>Так о том и речь, что либы (будь то jQuery или любой другой качественный продукт) были и остаются "ширпотребом". Одно дело сшить костюмчик под заказ у хорошего портного, другое дело заскочить в Лужники и взять уже готовое. Подходящая аналогия?


Не совсем Я могу похожую дать: Одно дело сшить костюмчик у хорошего портного, а другое — купить лохмотья у двоечника из швейного училища

M>>Еще раз повторю — javascript-программирование — это не обязательно низкоуровневое программирование.


AKS>То то и оно, что обязательное!


Кто сказал?

AKS>В противном случае будет получаться нечто, вызывающее "смех сквозь слезы" у "низкоуровневого писателя". Вот пример, за которым ходить далеко не стал, а взял то, что запомнилось из jquery.tooltip (Вы ранее давали ссылку):


AKS>
AKS>    function viewport() {
AKS>        return {
AKS>            x: $(window).scrollLeft(),
AKS>            y: $(window).scrollTop(),
AKS>            cx: $(window).width(),
AKS>            cy: $(window).height()
AKS>        };
AKS>    }
AKS>


AKS>Давайте сыграем в игру — угадайте с трех раз, где "плакать и смеяться".


Ну, я бы, как минимум, "закэшировал" бы $(window):
function viewport() {
    var w = $(window);
    return {
        x : w.scrollLeft(),
        y : w.scrollTop(),
        cx: w.width(),
        cy: w.height()
    };
}


В коде dimensions plugin смотрю, например, метод height:
    height: function() {
        if (!this[0]) error();
        if ( this[0] == window )
            if ( ($.browser.mozilla || $.browser.opera) && $(document).width() > self.innerWidth)
                // mozilla and opera both return width + scrollbar width
                return self.innerHeight - getScrollbarWidth();
            else
                return self.innerHeight ||
                    $.boxModel && document.documentElement.clientHeight || 
                    document.body.clientHeight;
        
        if ( this[0] == document )
            return Math.max( document.body.scrollHeight, document.body.offsetHeight );
        
        return height.apply(this, arguments);
    },


Если честно, то положусь на этот код Как-то лень выяснять, что "mozilla and opera both return width + scrollbar width" А tooltip несложно и под себя исправить

ЗЫ. Не понравится этот тултип, возьмем другой. В крайнем случае напишем свой


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.