- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток. Есть примитивный код, который по клику на заголовок раскрывает следующий за ним блок:
$( window ).resize(function() {
var width = $(document).width();
if(width < 650){
$(".title").click(function(){
$(this).next().show();
});
}
});
Этот код работает на планшетах при вертикальной ориентации экрана. Проблема в том, что раскрытие блока происходит столько раз, сколько было поворотов экрана.
Как добиться того, чтоб код исполнялся один раз?
Навскидку, можно поставить условие, показан ли title.next().
Или удалить обработчик после выполнения. Лень думать еще варианты...
Может есть другой способ отследить смену ориентации экрана?
Есть аналог метода .resize() ?
Может проверять еще дополнительно внутри функции $( window ).resize(function()
Соотношение ширины и высоты и если они изменились выполнять действие?
это если нет других обработчиков клика.
Т.е. перед тем как навесить обработчик - снимаете остальные, чтобы несколько не висело. Ну или можно через .data() что-нибудь элементу назначать, чтобы знать, что обработчик уже висит и второй раз не надо.
var width = $(document).width();
if(width < 650){
это вы так ориентацию экрана проверяете? :))
Проблема в том, что раскрытие блока происходит столько раз, сколько было поворотов экрана.
естественно.
вы же при каждом повороте экрана цепляете ивент.
ориентацию проверять стилями:
ивент цеплять единожды:
$(function() {
$(".title").on('click', function(){
$(this).next().addClass('show');
});
});
это вы так ориентацию экрана проверяете? )
Мне важно было объяснить в теме суть вопроса. Т.е. при смене ориентации экрана меняется его ширина, а в этом диапазоне требуется отрабатывать скрипт.
Благодарю за помощь!
а в этом диапазоне требуется отрабатывать скрипт.
если важен пиксельный диапазон - его тоже можно в ЦСС прописать.
Т.е. при смене ориентации экрана меняется его ширина
ширина так же меняется у десктопных браузеров.
не дай бог кто-то решит поресайзить окно :)