Событие DOMSubtreeModified (и / или замена) только для тегов <a>? - PullRequest
2 голосов
/ 14 января 2012

Я заметил, что событие DOMSubtreeModified устарело (что является печальной новостью), но мне было интересно, есть ли способ обнаружить изменения в каждом теге на странице (я знаю - это может быть очень дорого, ноэто имеет свою цель).

По сути, я хочу знать, когда создается или изменяется тег <a> (узел), чтобы я мог быстро отсканировать его .href и посмотреть, соответствует ли он шаблону, который я ищудля (если это так, я хочу перенаправить его для запуска моего JS (не имеет к этому отношения) вместо перехода по указанной ссылке).Мне нужно, чтобы это было общим (я не знаю идентификаторов / div / что-либо, кроме того, что они <a href> s, и у них есть определенный шаблон URL, который я ищу.

Я знаю поддержкупоскольку это даже неоднозначно, но сейчас оно будет использоваться только как расширение Chrome (Firefox появится вскоре после этого, так что мне придется с ним повозиться), так что пока все должно быть в порядке.

Дайте мне знать, если есть дополнительные вопросы. Спасибо!

1 Ответ

0 голосов
/ 14 января 2012

Вы можете поймать действие ссылки, когда оно происходит вместо этого. Какой шаблон вы ищете? Это просто вопрос выбора правильных <a> с. jQuery имеет атрибут селекторы практически для любого случая, «начинается с», «заканчивается», «содержит», «равно» и т. д. *

$('a[href="http://notHere.com"]').on('click',function(event){
    alert("omg don't go there!");
    //window.location="http://www.goHere.com";
    event.preventDefault();
});

jsFiddle

Согласно комментарию:

Если ваша страница будет изменяться динамически, вам нужно будет делегировать привязку события к чему-то, что определенно всегда будет существовать, и содержать вашу цель.

$('body').on('click','a[href="http://notHere.com"]',function(event){
    alert("omg don't go there!");
    //window.location="http://www.goHere.com";
    event.preventDefault();
});

Это помещает обработчик кликов в <body> и оттуда он отслеживает клики на соответствующих якорях. Если вы можете приблизиться, сделайте это, например: $('#mainContent')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...