Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Косячный код / 7 сообщений из 7, страница 1 из 1
23.08.2013, 14:51
    #38375933
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
Есть мой ява скрипт код, но мне кажется он не оптимальный, хотел бы услышать критику и предложения по исправлению. Спасибо

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
(function($) {
    $.fn.w__modal = function(obj) {
        var modal = {
            openModal: function() {
                var popup = $('.message_popup_overlay');
                $('.message_popup', popup).addClass('in');
                popup.fadeIn();
                setTimeout(function() {
                    $('.message_popup').removeClass('in');
                }, 1500);
            },
            setContent: function(content) {
                $('.message_body', this).html(content);
            },
            setHead: function(content) {
                $('.message_title', this).html(content);
            },
            // Close modal
            closeModal: function() {
                var popup = $('.message_popup_overlay');
                $('.message_popup', popup).addClass('out');
                popup.fadeOut(1000);
                setTimeout(function() {
                    $('.message_popup').removeClass('out');
                }, 1500);

            } /*, 
            stretch: function() {
            } */
        };
        obj = this;

        function constructor() {
            var mod = $('.message_popup'), append = false;
            if (!mod.length) {
                append = true;
                mod = $('<div class="message_popup_overlay">'
                        + '<div class="message_popup">'
                        + '<div class="message_header">'
                        + '<span class="message_title">' + '</span>'
                        + '<a class="close_butt" href="#">x</a>'
                        + '</div>'
                        + '<div class="message_body">'
                        + '</div>'
                        + '</div>'
                        + '</div>'
                        );
            }
            modal = $.extend(mod, modal);

            if (append) {
                $('body').append(modal);
                append = false;
            }
            return modal;
        }

        constructor();
        $('.close_butt').click(function(e){
            e.preventDefault();
            modal.closeModal();
        });

        $(this).live('click', function(ev) {
            ev.preventDefault(); 
            var url = $(this).attr('href');

            try {
                var uObj = $(url);
            } catch (err) {
               
            }
 
            if (uObj && uObj.length) {
                modal.setContent($('.content', uObj).html());
                modal.setHead($('.message_title', uObj).html());
                modal.openModal();
                $(url).remove();
                return;
            }

            $.getJSON(url, function(data) {

                var dblParse = $.parseJSON(data);
                if (dblParse) {
                    data = dblParse;
                }

                modal.setContent(data.content);
                modal.setHead(data.title);
                modal.openModal();
            });
            return;
        });
    } ;
})(jQuery);

jQuery(document).ready(function($) {
    $('.wii-modal').w__modal();
});
...
Рейтинг: 0 / 0
23.08.2013, 15:02
    #38375952
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
я constructor переписал с использованием https://github.com/BorisMoore/jquery-tmpl
...
Рейтинг: 0 / 0
23.08.2013, 15:02
    #38375953
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
Появляется эта ошибка, не могу понять из-за чего:

event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
...
Рейтинг: 0 / 0
23.08.2013, 15:02
    #38375955
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
*переписал бы
...
Рейтинг: 0 / 0
23.08.2013, 15:25
    #38375992
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
Паганелья constructor переписал бы с использованием https://github.com/BorisMoore/jquery-tmpl зачем? там по сути одна строка. лучше заюзать многострочный литерал:
Код: javascript
1.
2.
3.
4.
mod = $('<div class="message_popup_overlay"> \
                        <div class="message_popup"> \

...
...
Рейтинг: 0 / 0
23.08.2013, 15:27
    #38375995
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
Яростный Мечзачем?да привычка у меня уже функционал и представление разделять
...
Рейтинг: 0 / 0
23.08.2013, 17:17
    #38376156
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косячный код
Почему

Код: javascript
1.
2.
var popup = $('.message_popup_overlay');
$('.message_popup', popup).addClass('in');



А не

Код: javascript
1.
var popup = $('.message_popup_overlay, .message_popup').addClass('in')



?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Косячный код / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]