变量是未定义的,而它是定义的

时间:2012-12-27 12:20:30

标签: javascript jquery

下面的代码在控制台上为变量mystyle提供了一个未定义的错误。我没有得到它,因为我定义了变量。

jQuery( '.styles_div' ).each( function() {
switch (styles) {
    case 'style1':
        var mystyle = $('#stylewrap').append('<div class="style1"></div> ');
        break;
    case 'style2':
        var mystyle = $('#stylewrap').append('<div class="style2"></div> ');
        break;
}
$("#search").autocomplete({
    delay: 0,
    minLength: 3,
    search: function( event, ui ) {mystyle.show();},
    ...
})
});

2 个答案:

答案 0 :(得分:2)

mystyle需要在使用之前定义 - 可能作为全局变量而不是var关键字两次。测试存在是否也是谨慎的

var mystyle;
switch (styles) {
    case 'style1':
        mystyle = $('#stylewrap').append('<div class="style1"></div> ');
        break;
    case 'style2':
        mystyle = $('#stylewrap').append('<div class="style2"></div> ');
        break;
}
$("#search").autocomplete({
    delay: 0,
    minLength: 3,
    search: function( event, ui ) {if (mystyle) mystyle.show();},
    ...
})

如果这是完整的代码,那么这个代码可能更简单:

var mystyle = $('#stylewrap').append('<div class="'+styles+'"></div> ');

答案 1 :(得分:1)

mystyle之前定义switch case。否则代码是正确的。

相关问题