możesz dezaktywować wszystkie linki na stronie z tą klasą stylu:
a {
pointer-events:none;
}
teraz oczywiście sztuczka polega na dezaktywowaniu linków tylko wtedy, gdy trzeba, oto jak to zrobić:
użyj pustej klasy A, na przykład:
a {}
wtedy gdy chcesz dezaktywować linki, zrób to:
GetStyleClass('a').pointerEvents = "none"
function GetStyleClass(className)
{
for (var i=0; i< document.styleSheets.length; i++) {
var styleSheet = document.styleSheets[i]
var rules = styleSheet.cssRules || styleSheet.rules
for (var j=0; j<rules.length; j++) {
var rule = rules[j]
if (rule.selectorText === className) {
return(rule.style)
}
}
}
return 0
}
UWAGA: W niektórych przeglądarkach nazwy reguł CSS są przekształcane na małe litery, a ten kod jest wrażliwy na wielkość liter, więc lepiej używaj do tego nazw klas małych liter
aby ponownie aktywować linki:
GetStyleClass('a').pointerEvents = ""
sprawdź tę stronę http://caniuse.com/pointer-events, aby uzyskać informacje na temat zgodności przeglądarek
Myślę, że to najlepszy sposób na zrobienie tego, ale niestety IE, jak zawsze, na to nie pozwoli :) i tak to piszę, ponieważ myślę, że zawiera informacje, które mogą być przydatne, a niektóre projekty używają znanej przeglądarki , na przykład podczas korzystania z widoków internetowych na urządzeniach mobilnych.
jeśli chcesz tylko dezaktywować JEDNO łącze (zdaję sobie tylko sprawę, że było to pytanie), użyłbym funkcji, która ręcznie ustawia adres URL bieżącej strony, lub nie, na podstawie tego warunku. (jak rozwiązanie, które zaakceptowałeś)
to pytanie było DUŻO łatwiejsze niż myślałem :)