C'è un modo per rilevare se sto spostando sopra il text?

Quello che sto veramente dopo è quello di rilevare quando il cursore cambia per digitare "text", cioè, quando posso spostare su un pezzo di text. Ho cercato di esaminare i tipi di elementi che sto spostando, ma questo non è troppo preciso perché non so cosa contengono.

Capisco che il rilevamento dell'attributo CSS cursore è ansible solo se è stato precedentemente assegnato da me.

Ciò è effettivamente ansible? Come farebbe a farlo?

EDIT: Non voglio controllare se sono attualmente su un elemento specifico, voglio sapere se sto hover sopra qualsiasi text all'interno di quell'elemento. Un div potrebbe essere al largo del 100% del browser, ma con un text più corto all'estrema sinistra. Non voglio rilevare quando si passa sopra qualsiasi parte di un elemento.

Non è necessario cercare di rilevare se il cursore è cambiato.

Puoi rilevare semplicemente se il mouse sta spostando il text usando questo tipo di costrutto:

document.getElementById('myTextId').onmouseover = function() { // do something like for example change the class of a div to change its color : document.getElementById('myDivId').className = 'otherColor'; }; 

Se non si dispone di un ID ma di una class o di un tag, è ansible sostituire getElementById da getElementsByClassName o getElementByTagName (che restituirà gli arrays su cui ripetere l'iterazione).

Se si desidera ripristinare il colore quando si lascia l'elemento, vi suggerisco di associare l'evento all'apparecchio nello stesso modo.

Ad esempio, se vuoi fare qualcosa su qualsiasi paragrafo, puoi farlo:

 var paras = document.getElementByClassName('p'); for (var i=0; i<paras.length; i++) { paras[i].onmouseover = function() { // do something like for example change the class of a div to change its color : document.getElementById('myDivId').className = 'otherColor'; }; } 

Ho intenzione di fare molte cose come questo, ti suggerisco di guardare a jquery e il suo tutorial.

Se utilizzi jQuery (che dovresti, perché jQuery è impressionante), fai questo:

 $("#myDiv").mouseover(function() { $("#myDiv").css("background-color", "#FF0000"); }); 

Un modo ansible è trovare tutti i nodes di text nel tuo DOM e avvolgerli in una fascia con una certa class. Quindi puoi select quella class e fare quello che vuoi con esso:

 // Wrap all text nodes in span tags with the class textNode (function findTextNodes(current, callback) { for(var i = current.childNodes.length; i--;){ var child = current.childNodes[i]; if(3 === child.nodeType) callback(child); findTextNodes(child, callback); } })(document.body, function(textNode){ // This callback musn't change the number of child nodes that the parent has. This one is safe: $(textNode).replaceWith('<span class="textNode">' + textNode.nodeValue + '</span>'); }); // Do something on hover on those span tags $('.textNode').hover(function(){ // Do whatever you want here $(this).css('color', '#F00'); },function(){ // And here $(this).css('color', '#000'); }); 

JSFiddle Demo

Ovviamente questo riempie il tuo DOM con un sacco di tag di span e tu vuoi solo farlo una volta nel caricamento della pagina, perché se riesci ad eseguire nuovamente, raddoppierà il numero di span. Questo potrebbe anche fare cose strane se hai già applicato css personalizzato.