Here's a slightly simplified version of what you have now:
You have to say something. Either\
<<nobr>>
<span id='options'>
<<link 'say something'>>
<<replace '#options'>>
say something or say nothing.
<</replace>>
<<append '#options'>>
<br><br>You have chosen to say something. He is amused.
<</append>>
<</link>>
or
<<link 'say nothing'>>
<<replace '#options'>>
say something or say nothing.
<</replace>>
<<append '#options'>>
<br><br>You have chosen to say nothing. He is not amused.
<</append>>
<</link>>.
</span>
<</nobr>>
Note the use of the <<link>> macro; the <<click>> macro has been deprecated for years at this point, so you should probably stop using it going forward.
Anyway, here's a widget that will hopefully make things easier on you:
<<widget 'choiceLink'>>\
<<nobr>>
<<set _linkGroup to $args[0]>>
<<set _linkText to $args[1]>>
<<set _result to $args[2]>>
<<link _linkText>>
<<append _linkGroup>>
<<- '\n\n' + _result>>
<</append>>
<<run $(_linkGroup + ' a').off().addClass('no-link')>>
<</link>>
<</nobr>>\
<</widget>>
This code deactivates the links, if you also want to make them not look like links anymore, add this to your CSS:
a.no-link {
color: #eee;
cursor: default;
}
a.no-link:hover {
color: #eee;
text-decoration: none;
}
To use the widget:
<<choiceLink '#element' 'link text' 'output text'>>
Using the above example:
You have to say something. Either\
<<nobr>>
<span id='options'>
<<choiceLink '#options' 'say something' 'You have chosen to say something. He is amused.'>>
or
<<choiceLink '#options' 'say nothing' 'You have chosen to say nothing. He is not amused.'>>.
</span>
<</nobr>>
The links must all be grouped into the same element, and if you have other links in there, they'll get broken, so you'll need to use the longer method for more complicated scenarios. The output will get inserted two new-lines after the end of the given element.