如何将数据传递给jQuery对话框按钮

时间:2011-07-22 11:17:02

标签: jquery jquery-ui

我创建了表单创建的php / javaScript自动化。因此,当创建对话框时,动态且正确地添加按钮,但是我无法在单击按钮时触发的函数中访问JSON对象。

这是一个例子(警报不起作用,不显示):

aButtons[oGeneratedFormButtons[x].label] = function(){ alert(oGeneratedFormButtons[i].label); });

我可以将数据传递给函数,还是可以知道单击了哪个按钮。

以下是一个简单示例:http://jsfiddle.net/DavidLaberge/h4Cgp/13/

2 个答案:

答案 0 :(得分:1)

尝试使用这样的闭包:

for (var x = 0; x < JSON.length; x++) {
    aButtons[JSON[x].label] = (function() {
        var i = x;
        return function() {
            alert(i);
            alert(JSON[i].label);
        }
    })();
}

这是fiddle

答案 1 :(得分:0)

您确定问题不是您在函数内部使用的是另一个变量(i而不是x)吗?因为oGeneratedFormButtons [x] .label应该可以在函数内部访问,如果它可以在它外面访问的话。

aButtons[oGeneratedFormButtons[x].label] = function(){ alert(oGeneratedFormButtons[x].label); });