Quiero configurar un oyente para todos los elementos que tienen el mismo valor de estilo, que se puede configurar en cualquier lugar en su atributo de style , archivo .css o etiqueta de estilo <header> . Después de mucho buscar llego a este código:
$("body").on("click", '[style*="cursor:pointer"]', function (e) { const ripple = new Ripple(); ripple.create(e, this.tagName.toLowerCase() == "a" ? 'dark' : 'light'); }); Pero no está funcionando. Probé style~="pointer" y tampoco funcionó. Tanto JS como JQuery son geniales para mí.
Nota: Encontré otras preguntas relacionadas como usar filter , así que no me digas que está duplicado y, en mi caso, si quiero usar filter para encontrar elementos con .css() , mi oyente debe configurarse para todos los elementos en un página, que no es lógica y está optimizada.
Desafortunadamente, no puede usar el selector CSS para obtener fácilmente todos los elementos por sus valores de estilo. Esto funciona solo para aquellos que tienen el valor establecido directamente en su atributo html de style .
La única forma de resolverlo por JS que ya mencionaste. Esa es la función de filter , pero tienes razón en que no sería nada eficiente.
Pero tal vez hay otras formas de solucionar este problema. Porque en realidad es bastante raro establecer el comportamiento de algunos elementos en función de su valor css. La forma más común sería establecerlo por nombre de clase o nombre de etiqueta.
Así que no conozco el contexto, pero probaría una de estas formas: