Антон Швец, есть сайт(не мой) с кнопкой. При нажатии на кнопку срабатывает Javascript(внешний). Хочу отвязать ее от js.
Так то удалил его, но эффекта нет, она все равно работает.
К сожалению я нулевый в вебе, сужу по инспектору, смотрю на network и отслеживаю события при нажатии кнопки. Так же есть listener-ы на клик, но их удаление тоже ничего не дает.
Сейчас хочу поменять id и/или класс кнопки, я предполагаю что если это сделать то должно помочь. Возможно я занимаюсь херней, и есть нормальные решения.
UPD: ни смена id кнопки ни смена class, не помогают, она как работала так и работает. https://randstuff.ru/number/
вот сам сайт, хочу чтобы при нажатии кнопки "сгенерировать" ничего не происходило.
sswwssww, смена айди или класса конечно не поможет.
Вот место где он добавляется
$('#button.number').click(function() {
var caption = $('#caption');
var container = $('#number');
var save = $('#number-save');
Как видно селектор ищется по айди и классу, но сам слушатель вешается не на аттрибуты а конкретно на HTMLElement. Класс и айди нужны только для поиска нужного объекта. Их можно изменить потом, но слушатель то уже зарегистирирован.
На этом сайте слушатель клика на кнопке был добавлен с помощью jQuery
В этом случае вы можете удалить всех слушателей с помощью $('#button.number').off()
sswwssww, есть кстати еще способ, без jQuery, это снять с элемента outerHTML, удалить ноду и добавить потом ее строковое представление на прежнее место с помощью insertAdjacentHTML. Но в этом случае будут удалены и все слушатели с дочерных элементов.
Просто так получить список всех слушателей на элементе нельзя к сожалению. Ну насколько я знаю.
Вопрос только зачем, если вы хотите чтобы скрипт не выполнился, то уже поздно, к моменту когда сайт загрузится он уже исполнится, и хоть удаляй, хоть не удаляй, ничего не поменяется.