0

更新:此代码很疯狂。这里问题的根源是通过连接字符串来重新创建变量的名称,并假设它会神奇地变成那个变量。我有很多东西要学。此外,将模糊数量的选项传递给函数的更好方法是使用 JSON。

var availableTimes,
    selected_unit,
    selected_unit_number;

function createTimePicker(machineNumber){
    availableTimes = machineNumber({booked:"no"}).select("time");
    for (i=0;i<availableTimes.length;i++){
        $('<option/>').val(availableTimes[i]).html(availableTimes[i]).appendTo('#signin_start_time');
    }
}

$(function() {
    $('body').on('click', '#cybex_arctrainer_button', function() {
        selected_unit = "cybex_arctrainer";
    });

    $('body').on('change', '#signin_unit_number_selector', function () {
        selected_unit_number = $("#signin_unit_number_selector option:selected").text();
        unit_plus_number = selected_unit+selected_unit_number;
        createTimePicker(unit_plus_number);
    });
});

一些事情:数据库工作。如果我运行createTimePicker(cybex_arctrainer1)它会很好地填充availableTimes变量。问题似乎在于将它们组合selected_unit+selected_unit_number并传递给createTimePicker.

4

1 回答 1

1

这里:

machineNumber({booked:"no"})

machineNumber是一个字符串,但你试图调用它,就好像它是一个函数一样。如果你做类似的事情,你会得到同样的错误

someVar = 'bob';
someVar();

你说如果你跑

createTimePicker(cybex_arctrainer1);

但是您的代码没有createTimePicker使用变量 cybex_arctrainer1作为参数进行调用,而是在执行以下操作:

createTimePicker('cybex_arctrainer1');
于 2013-07-29T20:26:18.400 回答