У меня есть код устаревшего кода, который имеет что-то вроде
<a href='#' onclick="javascript:Domystuff(); return false;"> Some text<a>
Я добавляю jQuery для какой-либо другой цели на веб-сайте, и теперь я хочу определить, есть ли у данного тега событие "onclick" или нет. Но я не нашел, как я могу это сделать. Я вижу, что большинство предлагает использовать $("a").data('events')
но это не сработало для меня и всегда дает неопределенный результат. однако, когда я вызываю $("a").click()
выполняет Domystuff()
.
Любая идея, как я могу определить, присутствуют ли onclick
или onchange
или onblur
такие как события атрибута HTML.
EDIT: Я забыл упомянуть, что я не просто хочу обнаруживать все события из атрибутов, но хочу, чтобы все события на элементе зависали или размывались или менялись. Надеюсь, теперь я уточню. благодаря
if($('a').attr('onclick')) { // exists
}
в конце концов, даже обработчики событий являются HTML-атрибутами. Тем не менее, это не обнаружит обработчиков событий, прикрепленных jQuery, поэтому:
var ahrefs = $('a');
for(var i = 0;i < ahrefs.length;i++) {
var node = ahrefs.get(i);
if(typeof node.onClick == function) { // has an attached event handler
}
}
Легко, не так ли?
попробуй что-нибудь вроде этого
if ($('a').attr("onClick") != undefined) {}
$("a")
довольно жадный, но если вы добавите класс $("a.myClass")
он попадет только в этот элемент.