Функция внутри анонимной функции
Здравствуйте,
пишу себе вот так:
(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, время: 07:57. |