Вопрос

PHP - код:

<a id="a$id" onclick="check($id,1)" href="javascript:void(0)"  class="black">Qualify</a>

Я хочу удалить onclick="check($id,1) таким образом, ссылка не может быть нажата или "check($id,1) не будет уволен.Как я могу это сделать с помощью jQuery?

Это было полезно?

Решение

Старый Способ (до1.7):

$("...").attr("onclick", "").unbind("click");

Новый Способ (1.7+):

$("...").prop("onclick", null).off("click");

(Заменить ...с помощью нужного вам селектора.)

// use the "[attr=value]" syntax to avoid syntax errors with special characters (like "$")
$('[id="a$id"]').prop('onclick',null).off('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<a id="a$id" onclick="alert('get rid of this')" href="javascript:void(0)"  class="black">Qualify</a>

Другие советы

Я знаю, что это довольно старое, но когда потерянный незнакомец находит этот вопрос в поисках ответа (как это сделал я), тогда это лучший способ сделать это, вместо использования removeAttr():

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

Цитирование Официальный доку jQuerys:

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

если вы используете jquery 1.7

$('html').off('click');

ещё

$('html').unbind('click');

Удаление onclick свойство

Предположим, вы добавили встроенное событие click, вот так :

<button id="myButton" onclick="alert('test')">Married</button>

Затем вы можете удалить событие следующим образом :

$("#myButton").prop('onclick', null); // Removes 'onclick' property if found

Удаление click прослушиватели событий

Предположим, вы добавили событие click, определив прослушиватель событий следующим образом :

$("button").on("click", function() { alert("clicked!"); });

...или вот так:

$("button").click(function() { alert("clicked!"); });

Затем вы можете удалить событие следующим образом :

$("#myButton").off('click');          // Removes other events if found

Удаление обоих

Если вы не уверены, как было добавлено ваше событие, вы можете объединить и то, и другое, вот так :

$("#myButton").prop('onclick', null)  // Removes 'onclick' property if found
              .off('click');          // Removes other events if found

Это очень просто с помощью removeAttr.

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

После стольких попыток с помощью bind, unbind, on, off, click, attr, removeAttr, prop у меня получилось.Итак, у меня есть следующий сценарий:В моем html я НЕ прикрепил никаких встроенных обработчиков onclick.

Затем в моем Javascript я использовал следующее, чтобы добавить встроенный обработчик onclick:

$(element).attr('onclick','myFunction()');

Чтобы удалить это позже из Javascript, я использовал следующее:

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

Вот как у меня получилось динамически привязывать и развязывать события щелчка в Javascript.Помните, что НЕ следует вставлять какой-либо встроенный обработчик onclick в ваши элементы.

Что делать, если событие onclick происходит не непосредственно в элементе, а из родительского элемента?Это должно сработать:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});

Попробуйте это, если вы отвяжете событие onclick по идентификатору, а затем используйте:

$('#youLinkID').attr('onclick','').unbind('click');

Попробуйте это, если вы отвяжете событие onclick от класса, а затем используйте:

$('.className').attr('onclick','').unbind('click');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top