You need to pass the function not the result of the function.
Change this:
$("#search-button").on("click", searchFunction());
to this:
$("#search-button").on("click", searchFunction);
Using searchFunction() with the () at the end executes the function, causing you to pass the result of the function to the event handler.
While passing it like this searchFunction passes the reference to the function as expected.
Using the relevant code from your fiddle:
$("#search-button").on("click", searchFunction);
function searchFunction() {
$(".search-results").append("fefe");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container-fluid">
<div class="wrapper outer search-form">
<div class="middle">
<div class="inner">
<div class="row">
<div class="col-sm-3">
<span class="input-group-btn">
<a href="https://en.wikipedia.org/wiki/Special:Random">
<button class="btn btn-secondary" type="button">Random Article</button>
</a>
</span>
</div>
<div class="col-sm-3">
<div class="input-group">
<input type="text" class="form-control" id="search-string">
<span class="input-group-btn">
<button class="btn btn-secondary" type="button" id="search-button">Search</button>
</span>
</div>
</div>
</div>
</div>
<div class="wrapper outer">
<div class="middle">
<div class="inner search-results">
</div>
</div>
</div>
</div>