Почему эта функция не определена?

0

Я надеялся, что я прошел мимо этого... но почему это изменение размера не определено нажатием кнопки?

    $(document).ready(function(){
    var w = [320, 480];
    var h = [480, 620];

    function resize (input){
        $("scale").width(w[input]);
        $("scale").height(h[input]);
    }

    $.each(w, function(i, val){
        $("<button onclick='resize("+i+")'>"+val+"</button>").appendTo("body");
    }); 
});
  • 1
    Вы должны использовать .on('click', function(){...}) вместо этого, если вы используете jQuery. api.jquery.com/on
  • 0
    Потому что встроенный JavaScript (который вы не должны использовать) может ссылаться только на глобальные функции. resize не является глобальной функцией.
Показать ещё 1 комментарий
Теги:
scope

2 ответа

5

Потому что его внутри document.ready функция.

Для просмотра DOM вам нужно иметь функцию изменения размера на глобальном уровне.

Однако лучший способ сделать это - использовать функцию jQuery "on".

0

function resize существует только в области обратного вызова onReady, который вы передаете в document.ready... Для этого требуется существование "выше вверх"/"более глобально", или что-то, что упоминает @blazemonger, связать его напрямую, а не используя атрибут onclick = html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню