Don't try to build JavaScript by mashing together strings. Don't try to build HTML by mashing together strings. Definitely don't try to combine the two. You are just asking for a nightmare of nested escaping problems.
Use DOM. Build your elements. Bind your event handlers. Let jQuery and the native DOM functions handle all your escaping for you.
It is more verbose, but much more manageable.
function getSpecificReader (val) { alert(val); }
var val = {
name: "foo",
image_url: "https://ac3d197e9505f18c50e0-32b9f49f48b2c22be12b40ee79e2acc4.ssl.cf1.rackcdn.com/icon/logos_and_badges_thumbs_up/7x5uDqD4GBTrCSbXggZ-/58C79CAE-C3E6-4D6A-BAF5-A03631274FD7.png"
};
var list_item = $("<li />");
var link = $("<a />",
{
href: "#", // A link to the top of the page? Use a button instead
}).on('click', function(event) {
// Beware of creating a closure here. http://stackoverflow.com/questions/6487366/how-to-generate-event-handlers-with-loop-in-javascript
getSpecificReader(val.name);
});
var image = $("<img />", {
src: val.image_url,
alt: "Images require an alt attribute"
});
var text = document.createTextNode(val.name);
link.append(image);
link.append(text);
list_item.append(link);
$("#readerList").append(list_item);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="readerList">
</ul>