function edit(id, callback) {
$('button').click(callback(id)); //Запускается сразу
$('button').click(function() {callback(id)}) //Запускается при щелчке
$('button').click(function(id) {callback(id)}) //Запускается при щелчке, но callback возвращает ошибку из-за того, что вместо id передается null
}
Рабочий пример:
http://jsfiddle.net/tamtakoe/WX7SB/
Объясните, почему так происходит? По мне, так все должно работать как второй вариант.