下面的代码在控制台上为变量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();},
...
})
});
答案 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
。否则代码是正确的。