Подтвердить что ты не робот

JQuery: удалить события "OnClick" из тегов "a"

Это странный вопрос. У нас есть некоторые производственные связи в нашей интрасети. Некоторые румяные javascript возвращают "ложные" во всех ссылках на нашей домашней странице интрасети.

У нас нет доступа к источнику для повторной сборки элемента управления и исправления этого javascript.

Итак, как временная ленточная помощь, я хочу переместить все события onClick в ссылках с помощью jquery

Ссылки прямо сейчас выглядят следующим образом:

<a href="#" onclick="location.href='https://www.mysite.com/'; return false;" onclick="AddHit('Header: mysite.com', 'http://www.mysite.com'); return false;" title="Mysite Home">www.Mysite.com</a>

Я хочу написать несколько jquery, чтобы получить код "onclick = 'AddHit...".

4b9b3361

Ответ 1

Вы можете попробовать следующее:

$("a").removeAttr("onclick");

Изменить Обновление ответов на основе комментариев и jquery Docs:

Примечание. Удаление встроенного обработчика события onclick с использованием .removeAttr() не обеспечивает желаемого эффекта в Internet Explorer 6, 7 или 8. Чтобы избежать потенциальных проблем, используйте .prop() вместо

Лучший способ сделать это:

$("a").prop("onclick", null);

Ответ 2

Удалите атрибут из всех его ссылок:

$('a[onclick]').removeAttr('onclick');

Ответ 3

В соответствии с документацией JQuery вы должны использовать .prop() для удаления встроенного onclick, поскольку это позволяет избежать проблем в Internet Explorer 6, 7 или 8.

Попробуйте это

$element.prop("onclick", null);

Мне нужно было удалить onclick тега после первого щелчка, вот что я сделал:

onclick="$(this).prop('onclick', null);"

Надеюсь, что это поможет

Ответ 4

Вы можете сделать что-то вроде этого:

$('a[onclick]').removeAttr('onclick');

Ответ 5

$(function(){
    $('a[onclick*="AddHit"]').removeAttr('onclick');
}

Это приведет к удалению всех из них, но вы хотите, чтобы вы не удаляли его из нежелательных ссылок. В атрибуте onclick добавляется много вещей, если у вас есть класс, который вы можете проверить перед удалением, или содержимое onclick было бы лучше. Не хотелось бы смотреть, как весь сайт перестает работать, потому что необходимый JS не вызвал. Это приведет к удалению любых onclicks с помощью функции AddHit в onclick, чтобы вы были более безопасными.

Ответ 6

Это удаляет атрибут onclick для всех ссылок со значением onclick, начинающимся с "AddHit(" (оставив другие ссылки нетронутыми).

$('a[onclick^="AddHit("]').removeAttr("onclick");

Ответ 7

Не тестировалось, но я думаю, что это должно работать:

$(document).ready(function(){
    $('a').removeAttr("OnClick");
});

Дополнительная информация: http://api.jquery.com/removeAttr/

Ответ 8

Используйте метод .unbind() или off(), чтобы избавиться от этого.