为什么这个函数未定义?

时间:2014-03-07 20:02:23

标签: jquery scope

我希望我已经过去了......但为什么在按钮点击时调整大小未定义?

    $(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");
    }); 
});

2 个答案:

答案 0 :(得分:5)

因为它位于document.ready函数内部。

您需要在全局级别使用resize函数让DOM查看它。

然而,更好的方法是使用jQuery“on”函数。

答案 1 :(得分:0)

function resize仅存在于传递给document.ready的onReady回调的范围内...它需要存在“更高”/“更全局”才能使其工作,或者执行@ blazemonger提到,直接绑定它而不是使用onclick = html属性