Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2014, 01:44
Интересующийся
Отправить личное сообщение для dwarf Посмотреть профиль Найти все сообщения от dwarf
 
Регистрация: 22.05.2014
Сообщений: 16

оценка кода на jquery
Hello
Оцените плиз если есть время мой $&^ - код... есть ли принципиальные замечания? Заранее благодарен
$(document).ready(function(){
                $.getJSON('ajax/tests.json', function(data){
                    var select = $('<select/>', { id: 'select'});
                    //Наполняем список
                    $.each(data, function(key, val){
                        $('<option/>', {
                            val:  key,
                            text: ''+val,
                            file_addr: key+'.json'
                        }).appendTo(select);
                    });
                    $('#sidebar').append(select);
                    if(!param) {
                        var param = $('#select :first').attr('file_addr');
                    }
                    $('#select').bind('click', function(){
                        LoadTest();
                        return false;
                    });
                 });   
                function LoadTest() {              
                    var param = $('#select option:selected').attr('file_addr');
                    $('#content').html('');
                    $('#content').append('<input type="button" id="button" value="ok"/>');
                    $.getJSON('ajax/'+param, function(data){
                        $.each(data, function(key, val){
                            $('<h2>', {
                                text: ''+val
                            }).appendTo('#content');
                            $('#button').click(function(){
                                alert('go...go '+val);
                            });
                        });
                    });
                };
            });
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2014, 11:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Зачем вешать обработчик клика на селект? Может нужно слушать событие change?
Зачем в цикле (верней в итерации each) вешать кучу обарбочтиков клика на button?

По мелочам, нарушения соглашений по именованию:
Вместо attr('file_addr') лучше использовать атрибут data-file-addr, и получать его через data('file-addr')

И скорее всего должно быть file-url или file-src. Или там действительно адресная информация по файлам? Файл такой-то живет по улице такой-то, в доме таком-то? Если так, то все в порядке, ибо это и есть address.

LoadTest - это если у тебя функция-конструктор. Если нет, то должно быть loadTest.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2014, 18:30
Интересующийся
Отправить личное сообщение для dwarf Посмотреть профиль Найти все сообщения от dwarf
 
Регистрация: 22.05.2014
Сообщений: 16

Спс за комментарий.
Сообщение от danik.js
Зачем в цикле (верней в итерации each) вешать кучу обарбочтиков клика на button?
Мне это тоже не нравиться. Но лучше ничего придумать не смог, так как каждый раз список формируется по-новому вместе с кнопокй. И я не додумал как перехватить событие при нажатии на динамическую кнопку которое изменяет динамический список
Ответить с цитированием
  #4 (permalink)  
Старый 24.05.2014, 13:50
Интересующийся
Отправить личное сообщение для dwarf Посмотреть профиль Найти все сообщения от dwarf
 
Регистрация: 22.05.2014
Сообщений: 16

после медитации над кодом и с учетом вышесказанного переделал... если кому интересно
$(document).ready(function(){
                $.getJSON('ajax/tests.json', function(data){
                    //Наполняем список
                    $.each(data, function(key, val){
                        $('<option/>', {
                            val:  key,
                            text: ''+val,
                            'data-file-url': key+'.json'
                        }).appendTo($('#select'));
                    });
                });
                $('#select').bind('click', function(){
                    var param = $('#select option:selected').data('file-url');
                    $('#content').html('');
                    $('#content').append('<input type="button" id="button" value="ok"/>');
                    $.getJSON('ajax/'+param, function(data){
                        $.each(data, function(key, val){
                            $('<h2>', {
                                text: ''+val
                            }).appendTo('#content');
                        });
                    });
                    $('#button').click(function(){
                                alert('go...go ');
                    });
                });
   
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнить участок кода по 2-м событиям (jQuery) OlegALL Элементы интерфейса 3 22.05.2014 23:18
2 строки кода, не могу найти ошибку :( (jQuery) Altai Общие вопросы Javascript 2 28.03.2014 21:32
Вставка кода на jquery Гугл-мен jQuery 3 10.03.2013 05:40
Выделение HTML кода в Jquery Rinas jQuery 1 22.06.2011 09:35
jquery копия кода не работает в подуровнях сайта valeragug jQuery 6 09.02.2011 11:16