Функция внутри анонимной функции
Здравствуйте,
пишу себе вот так: (function () { function main() { $(document).ready(function () { $('#testHref').attr('onclick', 'second(); return false;'); console.log($('#testHref').attr('onclick')); }); } main(); function second() { console.log("second message"); } })(); function test() { console.log("Test message"); } Получается так, что у меня изначально на мой #testHref привязана функция test() - работает. Далее, нахожу idшник #testHref и к нему привязываю 'second(); return false;' Проверяю через вывод в консоль - да, привязало. Но и конечно в итоге получаю при нажатии что 'second is not defined'. Подскажите, пожалуйста, как правильно стоит проделывать то что я пытаюсь ? Спасибо! |
$('#testHref').on('click', function(ev){second(ev); return false;}); или $('#testHref').on('click', second); ... function second() { ... return false; } |
igorz,
попробуйте назначать клик, а не истязать атрибуты. |
И $(document).ready(function () внутри функции это излишек.
|
Цитата:
Цитата:
Но всё-же не до конца понимаю. На хабре нашёл что пишут вот так: ![]() Получается что это, как там же написано, приватная область видимости, к которой я не могу добраться из внешней. А что тогда происходит при вашем $('#testHref').on('click', second); что оно всё-же видится из внешней области ? Ещё там-же (в той статье) в конце пишут про "пространство имён" с применением private и public методов. Такой подход применяется ? Стоит ли на него обратить внимание ? var Module = (function () { var myModule = {}; var _privateMethod = function () { console.log("privateMethod message"); $(document).ready(function () { $('#testHref').attr('onclick', 'Module.newOnClick(); return false;'); }); }; myModule.publicMethod = function () { console.log("publicMethod message"); _privateMethod(); }; myModule.newOnClick = function () { console.log("myModule.newOnClick"); $('#div-body').html('New Text Here'); }; return myModule; // returns the Object with public methods })(); Module.publicMethod(); |
igorz,
за строку 7 автора пиф-паф :) |
Собирал в кучу из разных примеров которые попадались. Всё так плохо ? :(
|
Часовой пояс GMT +3, время: 20:40. |