Ответ 1
Вы хотите передать ссылку в функцию как обратный вызов, а не результат выполнения функции:
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.