when you use disclosure, the event sends back certain arguements, and it doesnt matter what the names are in your functions arguements, it will send it back in a certain order.
for the disclosure event, the record of the data is the second arguement, and in itemtap, it is the fourth arguement.
to check the arguements, look at the event for the component, they state it there in order.
so to fix this, you have to change your function into
showDetail: function (list, index, item, record) or showDetail: function (a,b,c, record)just as long as record is the fourth arguement.
hope this helps!