dropkick回调问题

时间:2012-01-08 13:17:44

标签: javascript jquery

我使用dropkick js设置下拉表单的样式,但有一个小问题。我想做的是在做出选择时做两件事:根据选择生成另一个下拉列表并在控制台中打印值(只是为了简单起见)。此外,我还想在控制台中打印生成的下拉列表的值。所以这就是我的代码:

$('.dropStyled').dropkick({
        change: function (value, label) {
            $('#subCategory').find('span.sub').html('<select id="selectSubCountry" name="subCountry" class="dropStyledSub" tabindex="2"></select>');                
            $('#selectSubCountry').append($("<option></option>").attr("value",'test').text(label));
            $('.dropStyledSub').dropkick(function() { //this is the dropdown I create dynamically
                change: function(val, lab) {
                    console.log(val);
                }
            });

            console.log(value);
        }
    });

问题是我在这一行得到“Uncaught SyntaxError:Unexpected token”:

change: function(val, lab) {

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

dropkick函数将一个对象作为参数,因此您必须从调用中删除该函数,即

$('.dropStyledSub').dropkick({
    change: function(val, lab) {
        console.log(val);
    }
});

您传递的方式实际上在语法上是不正确的,因为您将形式为function() {...}的函数声明与形式为{ change : function() {...} }的对象声明混合在一起。

答案 1 :(得分:1)

删除第二个dropkick参数中的function(),它必须是一个对象:

$('.dropStyled').dropkick({
    change: function (value, label) {
        ...
        $('.dropStyledSub').dropkick({ //this is the dropdown I create dynamically
            change: function(val, lab) {
                console.log(val);
            }
        });
        ...
    }
});