If I understand correctly your question, you can use the following (with jQuery):
[list=1]
[*]Bind a click event to the items in the list.
[*]When the event fires, you make an AJAX request to the route of the corresponding selected widget (or a common route with a parameter indicating the widget).
[*]The action will return the HTML for the widget only.
[*]You receive this data on the success callback function and insert it in a holder element in your document.