Цитата:
На сайте ты уже накосячил, да так, что даже найти косяк не в состоянии... А пример пока работает правильно. Т.ч. наращивая его у тебя есть все шансы найти свой косяк. ;) |
К счастью или к сожалению, сайт делал не я. "Мелкие доработки" типового решения сторонних разработчиков под одну из CMS выливаются в целую эпопею из-за непредусмотрительности тех самых разработчиков. Эта ошибка уже была на сайте, когда я за него взялся.
Пример некомпетентности: сейчас увидел, что, чтобы достать маленькую табличку, они аяксом подгружают целиком главную страницу (маленькая фича: если бы они использовали буферизацию вывода, нагрузка на сервер снизилась бы в разы, так же как и время загрузки данных, которое сейчас составляет больше секунды; а ведь еще можно учесть, что нужный им кусок страницы находится в шапке сайта). Ну что же, буду изображать школоло :) Первый пример сделаю, когда покушаю. |
<!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> --> <style type="text/css"> </style> <script type="text/javascript"> $(function (){ $(".btn").click(function(event) { event.preventDefault(); console.log("Click!"); }) }); </script> </head> <body> <button class="btn">Click me!</button> </body> </html> Выдает по одному клику за раз. Расположенная на целевой странице функция $("некоторые_селекторы").click(function(event) { event.preventDefault(); console.log("Click!"); }) Выдает 2 клика за раз. Наверняка происходит вся гадость где-то в подключенных скриптах, а это в основном минимизированные библиотеки, коих немало. В читабельных скриптах на быстрый взгляд ничего подозрительного не нашел, брейкпоинты тоже ничего не дали. Что интересно (только сейчас это проверил): если функцию подключить после загрузки страницы в консоли (а не в файле .js), то клик проходит только 1 раз. Не мучайте, подскажите, как найти, пожалуйста =) |
Всем спасибо :) Методом научного тыка нашел, что часть скриптов через API CMS подключается-таки дважды. На кол надо сажать таких разработчиков... Неделю времени убил на эту хрень, ибо в коде помойка натуральная.
|
Часовой пояс GMT +3, время: 02:57. |