Вы хотите передать ссылку в функцию в качестве обратного вызова, а не результат выполнения функции:
showDiv()
возвращает некоторое значение; если оператор return
не использовался, возвращается undefined
.
showDiv
является ссылкой на функцию, которая должна быть выполнена.
Это должно работать:
$(document).ready(function(){
$('a.test').bind("click", showDiv);
});
В качестве альтернативы, вы можете использовать анонимную функцию для выполнения более сложной функции:
...bind('click', function(){
foo.showDiv(a,b,c);
...more code...
});
В некоторых случаях вы можете хотеть использовать значение, возвращаемое функцией в качестве обратного вызова:
function function foo(which)
{
function bar()
{
console.log('so very true');
}
function baz()
{
console.log('no way!');
}
return which ? bar : baz;
}
...click( foo( fizz ) );
В этом примере foo
оценивается с использованием fizz
и возвращает функцию, которая будет назначена в качестве обратного вызова для события click.