Код 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?
Код 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
Предположим, вы добавили встроенный клик, например:
<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
После того, как вы так старались с привязкой, отвяжите, вкл, выкл, нажмите, attr, removeAttr, prop, я заставил его работать. Итак, у меня есть следующий сценарий: В моем html я НЕ прикреплял никаких встроенных обработчиков onclick.
Затем в моем Javascript я использовал следующее, чтобы добавить встроенный обработчик onclick:
$(element).attr('onclick','myFunction()');
Чтобы удалить это в более поздней точке из Javascript, я использовал следующее:
$(element).prop('onclick',null);
Именно так я работал, чтобы связать и развязать события щелчка динамически в Javascript. Помните, что НЕ вставляйте встроенный обработчик onclick в свои элементы.
Очень просто использовать removeAttr.
$(element).removeAttr("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');