Каждое событие имеет некоторые данные, которые передаются вместе с ним в параметре события. Вы можете сделать что-то вроде этого, чтобы выяснить, на что нажали:
function clickFun(event){
if (event.target.nodeName == "INPUT") {
var type = event.target.getAttribute('type').toLowerCase();
if (type == 'text') {
console.log('text input');
} else if (type == 'checkbox') {
console.log('checkbox');
}
} else if (event.target.nodeName == "TEXTAREA") {
console.log('text area');
}
}
thing.onclick = clickFun;
Вы можете сделать это с помощью jQuery, который предоставляет несколько простых функций для проверки информации об элементах. До вас, если вы хотите попробовать Javascript Framework.
$(':input').click(function(event){
var $this = $(this);
if ($this.is(':text')) {
console.log('text input');
} else if ($this.is(':checkbox')) {
console.log('checkbox');
} else if ($this.is(':textarea')) {
console.log('textarea');
}
});
Чтобы получить положение курсора, когда они щелкают в текстовом поле или области, попробуйте проверить эту статью:
http://www.dedestruct.com/2008/03/22/howto-cross-browser-cursor-position-in-textareas/