#javascript #jquery
#javascript #jquery
Вопрос:
Возможно ли иметь определенную функцию в качестве обработчика для jQuery $ (document).ready() вместо анонимной функции?
Я провел несколько экспериментов, но безрезультатно. Один из них здесь :http://pastebin.com/XHKPc879 .
Ответ №1:
Да, это возможно:
function pancakes() { /* Do interesting things */ }
$(document).ready(pancakes);
Проблема с вашим pastebin:
$(document).ready(test());
вы вызываете test
функцию, когда говорите test()
, просто опустите скобки, и все готово.
Комментарии:
1. Не только возможный, но и, возможно, хороший способ сохранить ваш код в виде удобных управляемых фрагментов, а также не вкладывать его полностью за пределы правого поля. 🙂
2. @WestonC Подождите, вы имеете в виду, что если вы перевернете код на бок, левое поле не будет графиком того, насколько это круто?!
3. Только если вы программируете, используя язык пробелов .
4. Язык пробелов для меня не достаточно вежлив .
Ответ №2:
Конечно, обычная функция — это такая же функция, как и анонимная.
Вот рабочая скрипка.
В вашем примере вы фактически вызываете функцию и передаете ее возвращаемое значение в прочитанный документ, потому что у вас есть закрытие ()
для него. Отключите их, и это должно сработать.
Конечно, если вы вызываете функцию, которая возвращает функцию, это тоже работает.
Редактировать
Первая ссылка:
function foo() {
alert("ohai!");
}
$(document).ready(foo);
Вторая ссылка:
function fooGen() {
return function() {
alert("kthxbai!");
};
}
$(document).ready(fooGen());
Ответ №3:
Вы также можете назвать свою анонимную функцию, чтобы она была не совсем анонимной:
$(function bob(){
alert('hi');
});
Иногда это полезно при отладке.