Pull to refresh
89
0
Хайрулин Василий@Sirian

Разработчик

Send message
1. Вы в команде что-нибудь когда-нибудь разрабатывали? Уточню — вам хоть раз приходилось разбираться в коде, который писало более 10 разработчиков? Еще раз повторюсь — помимо создания приложений есть еще понятие «поддержка» кода.

Как в таком коде разбираться?
elem.on(keydown, function(e){
    switch (e.keyCode) {
         case 53:
                  apple();
             break;
         case 66:
                  deleteComment();
             break;
         case 22:
                  banUser();
             break;
    }
})


2.
> В IDE делаю поиск по слову .onkey, и ищу код 9.

e.on('keydown', function() {})
e.on('keypress', function() {})
e.on('keyup, function() {})

Боюсь вы не найдете…
и вы начинаете судорожно щелкать по всем клавишам пока не увидите в консоли нужное число? По-моему это пустая (а главное — не нужная) трата времени.
и как вы будете искать например что же за клавиша с кодом 103, например на MacBook air? (подсказка — это numpad 7)

Представьте что вы пришли на новое место работы и перед вами задача — нужно чтобы при нажатии на клавишу TAB происходило такое же действие как и при нажатии BACKSPACE. у вас 1000 js файлов. и в каком то из них есть обработчик нужный. как вы будете искать его? Введете в поиск число 8?
и? я лишь акцентировал внимание на то, что namespaced events давно существуют в jquery.
и привел пример их использования, а поскольку сейчас актуальная версия 1.7.2, то использован был рекомендуемый метод on (вместо bind).
Что и требовалось доказать. tab и backspace перепутали (tab — 9, backspace — 8). Поэтому и говорю что нужно использовать константы, сравните и скажите что читабельнее:

if (e.keyCode == 8)

или
if (e.keyCode == KEY_BACKSPACE)
Как раз думал об этом. Главное найти время и силы для этого. На какие то конкретные вопросы по плагинам могу ответить в ЛС
это был ответ на habrahabr.ru/post/149237/#comment_5046019, просто промахнулся
ответ тут во втором пункте: habrahabr.ru/post/149237/#comment_5046434
1. Да ну? ну назовите мне сходу коды tab, space, shift, backspace, тильды
2. я не говорю про искать по [data-id=...]. Я говорю про извлечение идентификатора
<a href="#" data-id="123" class="delete">Удалить</a>

$('a.delete').on('click', function() {
    var elem_id = $(this).attr('data-id');
    // отправить ajax запрос с id = elem_id
});
Пардон, не выспался, this здесь другой смысл имеет. конец недели дает о себе знать)
А нет, все таки создаются копии в обоих примерах, а также в вашем варианте. Изначально я был прав
Проверить можно так:
var handler = function(e) {
    e.preventDefault();
    this.a = (this.a || 0) + 1;
    console.log(this.a);
}
$('a').unbind('click').click(handler);

Теперь если сначала по каждой ссылке будет выводиться свой счетчик
Прошу прощения — ошибся немного в описании, а точнее в примере. на самом деле если написать так
$('.comment a.delete').click(function(){...});

то обработчик будет в памяти лишь в одном экземпляре.

а если написать вот так
$('.comment a.delete').each(function(){
    $(this).click(function(){...});
});

то тогда будет N обработчиков в памяти.
К сожалению второй вариант тоже попадался мне на глаза на практике.

Ваш вариант безусловно решает эту проблему. Поправлю статью с этими примерами и добавлю вариант решения с вынесением обработчика
а если в какой то момент нам захотелось
изменить метод с GET на POST?
а если в какой то момент нам захотелось изменить метод с GET на POST?
Namespaced events также дают возможность делать trigger определенных событий $(elem).trigger('click.namespace1') позволит вызвать только обработчики из namespace1. В случае плагинов это весьма полезно
и да, я знаю что html это не слово, а абрревиатура. это просто пример
Опровержение чего? опровержение чьего-то мнения? Если я впервые узнал что такое «html» от учителя информатики, то это вовсе не значит что учитель информатики придумал это слово.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity