Because $("&lt;a href=\"#\" /&gt;") is NOT a selector

You are creating a new anchor element

Other than that, your code seems to be correct. See jsFiddle

Update

Unfortunately, I am unable to reproduce the error 

Uncaught TypeError: Object[object Object] has no method 'on'


But if you have changed $.fn.showPartnerTabs() to showPartnerTabs(), the this line 

$(this).showPartnerTabs();


will throw this error

Object [object Object] has no method 'showPartnerTabs'


Please make sure the following is true


$ is actually jQuery and not any other library i.e.
console.log($("&lt;a href=\"#\" /&gt;") instanceof $) prints true 
 or console.log($==jQuery) prints true
You are using jQuery 1.7+ because earlier versions have no support
for .on


Why isn't jQuery selector returning an object instead of an element?
We have a list page where users see a list of data and can select one to edit. The data opens up in an editable form. 

Here is the scenario:
User 1: Loads the list of data and selects to edit form 'ABC'
User 2: Loads the list of data and hangs out for a bit
User 1: Updates form 'ABC' to be 'CDE' and submits their update
User 2: Clicks to edit form 'ABC' as it was displayed on the list - but the form is now 'CDE' and opens as such.  

The question is should I let the user know that the form they are about to edit was recently changed?
Is this more confusing than it is helpful? 
Will expecting to load 'ABC' and actually loading 'CDE' confuse the user? What happens if it wasn't a re-name of the form but a deletion of the form? Then what should load?
