Комментарии 55
Не совсем понятен код проверки загрузки изображения… Тоесть у тега есть src на изображение, и при эвенте что оно загрузилось Вы меняете аттрибут на это же самое изображение?
0
НЛО прилетело и опубликовало эту надпись здесь
Нет. Этот код
эквивалентен этому
var imgsrc = 'img/image1.png';
$('<img/>').load(function () {
alert('image loaded');
}).error(function () {
alert('error loading image');
}).attr('src', imgsrc);
эквивалентен этому
$('<img/>').load(function () {
alert('image loaded');
}).error(function () {
alert('error loading image');
}).attr('src', 'img/image1.png');
.load
— это навешивание обработчика на событие 'load' в данном контексте. Сначала вешаем обработчики, потом загружаем изображение (присваивая значение imgsrc атрибуту src).+2
НЛО прилетело и опубликовало эту надпись здесь
Вы хотели показать именно кроссбраузерное решение? Потому что
делаются чистым css. Да, у ИЕ, ниже 9, с ними будут проблемы, но все же.
А так, спасибо, много полезного.
Табличные полосы (зебра)
делаются чистым css. Да, у ИЕ, ниже 9, с ними будут проблемы, но все же.
А так, спасибо, много полезного.
+13
И не только зебра делается через css.
Ишь, удумались, css-свойства картинкам через js устанавливать. Про max-width не слышали что ле?
Одинаковая высота блоков? Это же вообще класическая css задача! Однопиксельную полосочку нужно подкладывать, чтоб колонки сэмулировать :-)
А div по ширине/высоте вьюпорта — это вообще курам на смех.
Ну и не говоря уже про качество кода в таких сниппетах.
Например, при проверке сложности пароля нужно всю инициализацию выносить наружу. Создание трёх RegExp и семи jQuery объектов (они не кешируются) на каждое нажатие клавиши — далеко не самое оптимальное решение.
Ишь, удумались, css-свойства картинкам через js устанавливать. Про max-width не слышали что ле?
Одинаковая высота блоков? Это же вообще класическая css задача! Однопиксельную полосочку нужно подкладывать, чтоб колонки сэмулировать :-)
А div по ширине/высоте вьюпорта — это вообще курам на смех.
Ну и не говоря уже про качество кода в таких сниппетах.
Например, при проверке сложности пароля нужно всю инициализацию выносить наружу. Создание трёх RegExp и семи jQuery объектов (они не кешируются) на каждое нажатие клавиши — далеко не самое оптимальное решение.
+28
Ага, а самое страшное что люди ЭТО плюсуют и около тысячи добавили в избранное.
jQuery сам по себе хороший инструмент, но не тогда когда берут и копипастят откровенный говнокод в свои проекты. Мне это напоминает нулевые, когда на форумах люди выкладывали «скрипт гостевой книги»/«галерея изображений» где простыня откровенного фарша на пыхе творила не пойми что.
Те кто понимают что делают эти «магические строки» никогда не «возьмут на вооружение» такой бред, ну а для тех кто «не в теме» эти сниппеты «медвежья услуга».
jQuery сам по себе хороший инструмент, но не тогда когда берут и копипастят откровенный говнокод в свои проекты. Мне это напоминает нулевые, когда на форумах люди выкладывали «скрипт гостевой книги»/«галерея изображений» где простыня откровенного фарша на пыхе творила не пойми что.
Те кто понимают что делают эти «магические строки» никогда не «возьмут на вооружение» такой бред, ну а для тех кто «не в теме» эти сниппеты «медвежья услуга».
+9
Я например слышал. IE 11 при первой загрузке отражает скрул бар справа и полоску снизу.
Но стоит обновить страницу и все исчезает. Фоотер переносится вниз.
Причем поймать этот момент непонятно как.
Но стоит обновить страницу и все исчезает. Фоотер переносится вниз.
Причем поймать этот момент непонятно как.
0
$('a[href=#]').click(function(){ return false; });
-3
Я бы необходимость сделать из таблицы «зебру» переложил на css
+6
Интересные примеры. Но всетаки jquery — это фреймворк с удобным и привычным апи. Сейчас можно сконфигурировать jquery под себя и использовать ровно то, что нужно.
Для тех же ajax запросов так или иначе прийдется писать обертку
Для тех же ajax запросов так или иначе прийдется писать обертку
+1
jQuery — это не фреймфорк, а библиотека.
+2
Фреймворк — это набор библиотек. Так вот jquery — это как минимум сизл + ядро jquery. Сейчас это просто набор компонентов, которые можно собрать ровно так как тебе это нужно.
И да, зря я поддался на провокацию. Как ваше замечание меняет суть вышеизложенного?
И да, зря я поддался на провокацию. Как ваше замечание меняет суть вышеизложенного?
-6
Фреймворк — это не набор библиотек, а каркас приложения. Загляните на, скажем, википедию.
На суть вышеизложенного никак не влияет, я просто указываю вам на грубую ошибку, допущенную в комментарии.
На суть вышеизложенного никак не влияет, я просто указываю вам на грубую ошибку, допущенную в комментарии.
0
Загляните, скажем, не на русскую википедию.
Вот вам цитата, чтобы далеко не заглядывать
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework is a universal, reusable software platform to develop applications, products and solutions
Вот вам цитата, чтобы далеко не заглядывать
-6
Лучше бы ваниль была привычной, так как иногда смотришь на эти жикверьные цепочки в каше и становится не по себе. Если бы jQuery использовали только в случае наличия в доставшемся проекте или требования включают поддержку старых браузеров… мечты.
+2
НЛО прилетело и опубликовало эту надпись здесь
jQuery облегчает работу с DOM, не вижу в этом ничего плохого. Что касается каши, ну а что можно сделать с тем, что jQuery в принципе позволяет писать говно?
Это примерно как с PHP, низкий порог вхождения даёт соответствующие последствия. Правда, в случае PHP сам язык спроектирован неважно.
Это примерно как с PHP, низкий порог вхождения даёт соответствующие последствия. Правда, в случае PHP сам язык спроектирован неважно.
0
пример с «Div по ширине/высоте вьюпорта» не будет работать, так как переменные ширины/высоты окна устанавливаются изначально и не корректируются на resize.
+3
Все снипеты вроде простые и очевидные. Но иногда полезно бегло проглядывать подобные подборки снипетов, чтобы потом они всплывали в голове в подходящей ситуации.
А вот качество кода приведенных примеров действительно хромает. Рефакторить их надо!
Хотя, если не копипейстить эти снипеты, а просто запоминать их применение, то и так сойдет.
А вот качество кода приведенных примеров действительно хромает. Рефакторить их надо!
Хотя, если не копипейстить эти снипеты, а просто запоминать их применение, то и так сойдет.
-4
На хабре поколение сменилось? Очередная волна изучающих jQuery с нуля?
+37
Почти «Вредные советы», если исключить пару-тройку примеров, которые действительно нельзя (без лишних проблем) заменить на что-либо иное.
+20
$('a').each(function() {
var a = new RegExp('/' + window.location.host + '/');
if(!a.test(this.href)) {
$(this).click(function(event) {
event.preventDefault();
event.stopPropagation();
window.open(this.href, '_blank');
});
}
});
Зачем так усложнять? Почему просто не дать ссылке аттрибут target=_blank?
+9
К сожалению, не могу ответить за автора. Я только перевел. И, действительно, как пишут выше, сниппеты довольно спорные.
Например, решение с _blank оно даже невалидно и корректней его делать повесив на ссылку атрибут rel=«external», а открывать уже простым js опеном.
Например, решение с _blank оно даже невалидно и корректней его делать повесив на ссылку атрибут rel=«external», а открывать уже простым js опеном.
$('body').on('click', 'a[rel="external"]', function() {
window.open($(this).attr('href'));
return false;
});
-12
То что вы написали — тоже какая-то фигня. Зачем делать что-то за браузер?
+8
Ну был раньше такой загон, вам выше написали, — всё должно быть валидно.
Чтоб эмблему W3C можно было в подвале повесить или просто для удовлетворения чсв, не знаю. Но поганый target="_blank" ломал весь кайф и заставлял w3c-валидатор ругаться. Поэтому исходно этот атрибут выпиливали, а для достижения требуемого эффекта подключали js.
Чтоб эмблему W3C можно было в подвале повесить или просто для удовлетворения чсв, не знаю. Но поганый target="_blank" ломал весь кайф и заставлял w3c-валидатор ругаться. Поэтому исходно этот атрибут выпиливали, а для достижения требуемого эффекта подключали js.
+1
Идиотский загон, тем более в отношении нынешних реалий. Абсолютно все браузерные префиксы вне стандарта.
rel браузерам не важен, в отличии от target
Я более чем уверен, что 99,9% пользователей глубоко наплевать что думает про ваш сайт w3c валидатор, ему главное чтобы браузер его правильно открывал
rel браузерам не важен, в отличии от target
Я более чем уверен, что 99,9% пользователей глубоко наплевать что думает про ваш сайт w3c валидатор, ему главное чтобы браузер его правильно открывал
+1
Если я не ошибаюсь, то target="_blank" проходит валидацию в html5 документах.
0
Благодарю. В целом, комментарии стали для меня показателем собственной некомпетентности в сабже. Чему рад, так как конкретизировались недостатки и понятно над чем работать. Признаю: «лох и опозорился» ©.
0
Автор неверно описал суть кода. Там не атрибут добавляется, а внешние ссылки открываются в новом окне (вкладке). Причем данный код не будет корректно работать с относительными ссылками. Теперь по вашему вопросу: что будет с _blank в будущем не ясно (мне по крайней мере), будет он всегда поддерживаться или нет не известно. А во-вторых, часто это просто удобно, открывать все внешние ссылки в новой вкладке и при этом не думать о том, что контент-менеджер забыл указать _blank.
0
$("#refresh").load(location.href+" #refresh>*","");
зачем к url добавлять #refresh>*? это типа анти-кеширование? тогда Math.random() использовать будет попрактичнее)
0
Второй сниппет, копирующий в футер таблицы её шапку, не работает, если на странице больше одной таблицы. Точнее работает, но превращает таблицы в кашу.
0
Может кто-нибудь пояснить зачем поддерживается версия jQuery 1.1 наравне с 2.x?
-5
Плавный скролл к верху страницыДля решения этой задачи я бы навесил плагины scrollTo
0
Можно подозревать, и подозреваю, что автором этого кода был лютый фанат регулярных выражений. Любой другой бы сравнил у строки свойствоvar enoughRegex = new RegExp("(?=.{6,}).*", "g");
+19
Пункт «Частичное обновление страницы»
поправьте, если не прав, но очень топорное решение — к серверу пойдет запрос на генерацию всей страницы, после чего js заставляют вычленять из всего dom'a нужный блок и вставлять его содержимое в этот же блок. Если обновляется какая-то часть страницы, то и грузиться с сервера должна только часть, а не вся страница целиком, иначе тогда в чем суть Ajax'a здесь?
поправьте, если не прав, но очень топорное решение — к серверу пойдет запрос на генерацию всей страницы, после чего js заставляют вычленять из всего dom'a нужный блок и вставлять его содержимое в этот же блок. Если обновляется какая-то часть страницы, то и грузиться с сервера должна только часть, а не вся страница целиком, иначе тогда в чем суть Ajax'a здесь?
+3
Я не знаю за что тут плюсовать, решения сами по себе ужачны и их код тоже. Не учите людей плохому.
+7
Эти вредные сниппеты, как мне кажется, рассчитаны в первую очередь на новичков в мире js, когда полного понимания еще нет, но решение нужно здесь и сейчас. Думаю, что любой разработчик, использующий js не меньше чем год, сможет написать любой сниппет с 0, даже без исп. jquery. И сделает он это более эффективно, если речь идет о производительности.
0
НЛО прилетело и опубликовало эту надпись здесь
Табличные полосы я бы лично делал на CSS
0
нажатием ссылки (с id #top)
<a id="top">Top</a>
В таком варианте, код приведенный в статье работать не будет.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
10+ полезных jQuery сниппетов на каждый день