Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как переписать ф-ю HistoryAPI без перезагрузки с jquery на js?

Paho Оракул (62513), открыт 2 недели назад
$('.historyAPI').off('click');
$('.historyAPI').on('click', function(e)
{ если я выношу все тело в функцию и делаю document.querySelector(".historyAPI").addEventListener('click', historyAPI); в этом случае страницы перезагружаются. Как переписать эти первые две строчки?
4 ответа
Ayzek Klark Знаток (251) 2 недели назад
это что за питон такой
PahoОракул (62513) 2 недели назад
уж
Ayzek Klark Знаток (251) Paho, ну как справился с ним?
Ayzek KlarkЗнаток (251) 2 недели назад
Удали обработчик события click:
document.querySelector('.historyAPI').removeEventListener('click', historyAPI);

Добавь новый обработчик события click:
document.querySelector('.historyAPI').addEventListener('click', function(e) {
// Ваш код обработки события здесь
});
Вместо использования $ для выбора элемента по классу, используй document.querySelector

удали предыдущий обработчик события click с помощью removeEventListener, указывая имя функции historyAPI.

И, наконец, добавь новый обработчик события click с помощью addEventListener, передавая анонимную функцию. Убедитесь, что ваш код обработки события находится внутри нового обработчика click.
Ayzek KlarkЗнаток (251) 2 недели назад
понял?
LordlordoftheWorlds Знаток (418) 2 недели назад
Для переписывания функции HistoryAPI с jQuery на чистый JavaScript без перезагрузки страницы можно использовать следующий код:

```javascript
document.querySelectorAll('.historyAPI').forEach(function(element) {
element.addEventListener('click', function(e) {
// Ваше тело функции здесь
});
});
```

Этот код найдет все элементы с классом "historyAPI" и добавит каждому из них слушателя события "click". При этом страница не будет перезагружаться при клике на элементы с этим классом.
PahoОракул (62513) 2 недели назад
только че-то в геометрической прогрессии начало зацикливаться
Paho Оракул (62513) на jquery за один переход было 2 подгрузки, сейчас чем чаще кликаешь тем растет в геометрической прогрессии
Руслан Холявко Мыслитель (8852) 2 недели назад
Конечно, попробуем переписать это без использования jQuery, используя чистый JavaScript:

1. Убираем существующие обработчики событий.
2. Добавляем новые обработчики событий с использованием `addEventListener`.

Вот как это может выглядеть:

```javascript
// Получаем все элементы с классом 'historyAPI'
var historyAPIElements = document.querySelectorAll('.historyAPI');

// Удаляем существующие обработчики событий
historyAPIElements.forEach(function(element) {
var newElement = element.cloneNode(true);
element.parentNode.replaceChild(newElement, element);
});

// Добавляем новые обработчики событий
historyAPIElements = document.querySelectorAll('.historyAPI');
historyAPIElements.forEach(function(element) {
element.addEventListener('click', function(e) {
// Ваше тело функции здесь
});
});
```

Если у тебя уже есть функция `historyAPI`, используй её вместо анонимной функции:

```javascript
// Получаем все элементы с классом 'historyAPI'
var historyAPIElements = document.querySelectorAll('.historyAPI');

// Удаляем существующие обработчики событий
historyAPIElements.forEach(function(element) {
var newElement = element.cloneNode(true);
element.parentNode.replaceChild(newElement, element);
});

// Добавляем новые обработчики событий
historyAPIElements = document.querySelectorAll('.historyAPI');
historyAPIElements.forEach(function(element) {
element.addEventListener('click', historyAPI);
});
```

Таким образом, мы создаём клоны элементов, удаляя при этом все существующие обработчики событий, и затем снова добавляем новые обработчики событий. Это должно помочь избежать перезагрузки страниц.
PahoОракул (62513) 2 недели назад
спасибо
Руслан Холявко Мыслитель (8852) Paho, пожалуйста.
Петр Алексеевич Оракул (81494) 2 недели назад
Весь сайт собрался с помощью ответов написать? Про GPT не в курсе?
PahoОракул (62513) 2 недели назад
всё уже, переписал. Некоторые сложные функции на jquery что не гуглились
Похожие вопросы