Quote's Click-to-expand & spoilers

Xon

Well-known member
Affected version
2.2.15
I've had bug reports from users that quote's click-to-expand feature doesn't reliably trigger for quotes in spoilers or custom bb-codes which hide & then show content.

Tracing through the javascript, the check() function gives up after ~2.2 seconds and then after that the mutation observer just isn't firing as expected.

I've replicated this semi-reliably with the spoiler tag:

[spoiler][spoiler][quote]...[/quote][/spoiler][/spoiler]



Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean id nunc velit. Duis non commodo sapien. Donec aliquam ex a tortor fringilla, quis dignissim erat tempus. Morbi in eros tortor. Sed scelerisque est enim, sed accumsan ante consequat nec. Cras suscipit porttitor dui, sit amet porta elit hendrerit vel. Nunc eu tortor in nunc bibendum tincidunt. Vestibulum facilisis leo et urna tempus imperdiet. Donec nec est ut nunc ullamcorper auctor in vel dui. Suspendisse a aliquet dui. Phasellus varius nisi id orci vulputate facilisis non ac lacus. Proin sed rhoncus est. Morbi rutrum mauris nec feugiat viverra. Proin dapibus tempor tellus, at lacinia nulla cursus id.

Praesent a cursus dolor. Sed lobortis et erat et imperdiet. Phasellus dolor lacus, rhoncus auctor sem tempor, pulvinar facilisis libero. Suspendisse cursus molestie erat at faucibus. Nulla eu congue augue, non porttitor orci. Phasellus vel tellus sagittis, vehicula nulla sit amet, euismod felis. Nulla sodales tellus eu quam vehicula, non hendrerit augue tempor. Etiam et metus a odio bibendum finibus. Vestibulum eget porta sapien, lobortis pulvinar nisl. Proin quis magna sapien. Sed molestie ex elit, rhoncus auctor sapien commodo non. Curabitur scelerisque magna purus, non scelerisque diam pulvinar vel. Phasellus ultricies mi non tincidunt interdum. Nulla faucibus tempor quam, quis convallis turpis feugiat varius. Nam in lacus laoreet quam interdum placerat. Phasellus egestas hendrerit commodo.

Nam eleifend tempus porttitor. Donec ut commodo lacus, vel cursus turpis. Ut nec diam elementum, ultricies libero egestas, sagittis nulla. Suspendisse fringilla tincidunt sem, a cursus lacus tincidunt vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla eget ligula in purus scelerisque vestibulum pulvinar ut nulla. Vestibulum eget turpis congue, dictum nulla eu, posuere neque. Vestibulum sit amet urna et purus placerat aliquet. Phasellus vel lacus pretium, gravida augue ac, egestas tortor. Nunc sit amet condimentum neque, vitae eleifend erat. Nulla eu nisi dignissim, gravida erat eu, congue tortor. Nulla sit amet tincidunt ipsum.

Maecenas accumsan fermentum massa quis varius. Nullam ac tincidunt leo, a molestie tortor. Nulla in molestie lacus. Cras vitae diam lobortis, tincidunt mi sed, lobortis enim. Vestibulum luctus quam eu augue vulputate ultricies. Mauris eget cursus sapien. Nullam pharetra purus eu ex rhoncus ultrices. Vivamus sed dui leo. Mauris auctor turpis vitae velit mollis pharetra. Praesent vulputate leo vel quam egestas, sed pulvinar metus pharetra. Cras at nibh ac enim tempus dignissim. Donec elementum aliquet risus, a convallis est luctus id. Proin vel ligula felis. Praesent dignissim sapien sit amet orci volutpat, nec dignissim metus varius. Ut neque nisi, scelerisque non venenatis vitae, faucibus id odio. Proin accumsan felis ac tempus varius.

Donec imperdiet dui ac metus imperdiet eleifend eget porta felis. Proin sed lorem pharetra, fermentum neque id, sodales lorem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce eleifend lorem non massa rhoncus, sollicitudin interdum nulla euismod. Cras nec dolor in lacus condimentum sagittis vel et purus. Ut facilisis sollicitudin nulla, ornare volutpat felis maximus eu. Quisque eget quam ut tortor volutpat venenatis eu vitae ante. Morbi non nisi et diam posuere vulputate vitae a felis. Vestibulum vel nibh maximus elit elementum consequat. Pellentesque consectetur neque sed sollicitudin sodales. Donec lobortis justo in velit porttitor, in egestas elit tristique.

You need to wait at least 2.2 seconds for the check code to give up, and then click expand on the spoilers!

The "work-around" for my custom bb-codes is to call XF.ExpandableContent.checkSizing() called once on the content just shown.
 
Top Bottom