As Arun mentioned, your problem is likely that the element you are targeting does not yet exist on the page when you attempt to bind your handler to it.
To fix this, you can use event delegation. Instead of binding to the element directly (because it doesn't exist yet), you bind to another element in it's hierarchy that is present on page load delegating the listener to it. In the delegation, you pass in the id
or class
of the target element. So this parent element will then listen for clicks on elements matching your selector within it's children and call your function if it hears one.
You can always delegate to $(document)
but best practice is to delegate to an element as close to the dynamically added target element as possible.
$("#container").on("blur","#clarity_lbl", function(event, ui) {
alert("hi");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<input type="text" id="clarity_lbl" value="click then click away" size="100"/>
</div>