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

Разработчик

Send message
el = $(this); // тут не хватает кстати var
и вы пытаетесь работать с r как с json, при этом явно не указывая dataType='json'. В случае если ваш сервер выдаст, например (500 ошибку) — у вас возникнет ошибка в скрипте на строке if (r.status == 1) {
соглсаен, иногда можно и так.
только лучше
1. не /comment/delete/123, а /comment/123/delete. Например, если у вас RESTful
2. не $('a.delete').on('click', handler), а $('.container').on('click', 'a.delete', handler); — решаем проблемы добавления событий к новым комментариям
3. в click обработчике лучше писать event.preventDefault(), чем return false. Поскольку return false это event.preventDefault() + event.stopPropagation(). Например, если у вас дополнительно собирается карта кликов — клики по ссылкам удаления не будут засчитываться
У нас почти все частоты заняты вооруженными силами, для LTE то частоты совсем недавно отдали
RT-N16 уже полтора года примерно стоит — ни разу не перегревался. никаких кулеров не ставил (прошивка от олега, точнее от последователей-энтузиастов). включен постоянно
да, я знаю. про Function.prototype.bind я как раз тоже укажу в статье
Данный вариант не работает:
for ( n=1; n<=3; n++ ){
    $.get( '/', $.proxy( function( n, data ){
        console.log(n);
    }, n));
}​

$.proxy работает по другому — он устанавливает контекст для выполняемой функции
про deFeRRed уже есть статьи:
habrahabr.ru/post/113073/
habrahabr.ru/post/112960/

а на счет контекста — тут нужно не только $.Proxy а про контекст целиком рассказывать. В планах есть написать статью по этому поводу, если не опередят — напишу
Нужно только не забыть фильтровать данные при таком подходе
Например, можно воспользоваться self-inoking функцией:
for (var n=1; n <= 3; n++){
    (function(n){
        setTimeout(function(){console.log(n)}, n * 300)//или в вашем случае $.get
    })(n)
}
Кстати, лично я всегда использую on для прикрепления событий, чтобы явно показать, что я прикрепляю событие, а не делаю trigger события. Позволяет избежать неочевидных проблем и улучшает читабельность.
Пример, который приведет непонятно к чему:
var fn = function(){}
...
//где то в другом месте fn = undefined;
...
$('.spend_the_money').click(fn);


Тем более, что не так много экономят shorthand функции
element.on('click', handler)
element.click(handler)
Если к кодам есть комментарии и при изменении числовых значений не забывают обновлять комментарии — то я не против (в shortcuts.js кстати они есть).

Но речь не только о кодах клавиш, а об использовании различных чисел без вынесения в константы (особенно если одно и то же число используется несколько раз).
Только нужно учесть, что должно быть boolean значение
$('a').toggle(1000) — спрячет все. поэтому запись выше скорее эквивалентна такому выражению:
$j(selector).toggle(!!someValue);
а нет, все верно — не разглядел someValue в toggle
не совсем так:
if (true) {
    $j(selector).show();
} else {
    $j(selector).hide();
}

не эквивалентно

$j(selector).toggle(someValue);
Отличная статья! В ней как раз указаны некоторые пункты (например, про closest), которые я не стал описывать в habrahabr.ru/post/149237/ (чтобы статья не была слишком длинной)
Все разработчики разных уровней — кому то на эту задачу нужно 10 секунд, а кому-то понадобится полдня. Использование говорящих названий позволяет уменьшить время разработки в разы. Ни в одном хорошем проекте вы не увидите нигде вшитых чисел в код. Они будут так или иначе вынесены в константы.

P.S. Я надеюсь вы переменные не называете a, b, c? это ведь быстрее, чем набирать userId, да и тягать лишние 5 байт — это же ужас *sarcasm*

Information

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