Mam zestaw elementów SVG z klasami node
i link
. Mój program powinien wykryć, czy element zawiera klasę node
lub klasę link
po najechaniu kursorem na dowolny z elementów SVG. Jednak z jakiegoś powodu, .hasClass()
nie wydają się działać:Metoda jQuery .hasClass() kończy się niepowodzeniem dla elementów SVG
$(".node").hover(function(evt){
console.log($(this).attr("class")); //returns "node"
console.log($(this).hasClass('node')); //returns false
}, function(){console.log("Done");});
więc element I unosił się na ma klasę node
i jQuery wykryje, że zbyt, jak pokazano przez console.log($(this).attr("class"));
, ale z jakiegoś powodu rzeczywista .hasClass()
kończy się niepowodzeniem. Dlaczego to? Czy to nie z powodu SVG?
tylko marginesie, jesteś brakuje ')' w końcu :) i [wydaje się działać dla mnie] (http://jsfiddle.net/hungerpain/V4BNT /) – krishgopinath
Interesujące ... spróbuj ustawić zmienną równą '$ (this) .attr (" class ")' następnie użyj 'hasClass' z tym var. Wciąż fałszywe? – tymeJV
Elementy wewnątrz SVG nie są tak naprawdę HTML i jako takie nie ma właściwości z tych elementów, dlatego uzyskanie atrybutu działa, ale użycie hasClass, które prawdopodobnie sprawdza właściwość className, nie działa. – adeneo