У меня есть функция self-invoking для хранения всего моего кода javascript. (как предложено в книге)вызывать функцию, определенную внутри функции самозапускания
Внутри этой функции я создал кнопку, эта кнопка имеет атрибут onclick = "myfunction()". например:
(function() {
var x = 4;
var btn = document.createElement('button');
btn.type = "button";
btn.style.width = "100";
btn.textContent = "click me";
btn.id = "bid";
btn.setAttribute('onclick', "myfunction()");
document.body.appendChild(btn);
function myfunction() {
alert(x);
}
})();
Но тогда, когда я нажимаю на созданную кнопку, myfunction() не может быть найден. данное сообщение:
ReferenceError: Не удается найти переменную: MyFunction
Затем я переехал MyFunction() такой:
(function() {
var x = 4;
var btn = document.createElement('button');
btn.type = "button";
btn.style.width = "100";
btn.textContent = "click me";
btn.id = "bid";
btn.setAttribute('onclick', "myfunction()");
document.body.appendChild(btn);
})();
function myfunction() {
alert(x);
}
Теперь можно найти MyFunction(), но насторожило х значение - это что-то вроде [object HTMLSelectElement], а не то, что я ожидал.
Я как бы запутался в функциях внутри самозапускающихся функций.
* «Я как бы запутался в функциях внутри самозапускающихся функций». * В них нет ничего особенного. Они не отличаются от функций, определенных в других местах. Фактическая проблема заключается в том, что ** атрибуты события HTML ** оцениваются в глобальной области. –