1

下面的代码在控制台上为变量提供了一个未定义的错误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();},
    ...
})
});
4

2 回答 2

2

mystyle 需要在使用之前定义 - 可能作为全局 var 并且没有两次 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> ');
于 2012-12-27T12:22:41.903 回答
1

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

于 2012-12-27T12:30:34.513 回答