在这段代码中,未定义的变量传递给数据
var data, expContainerSettings;
$( this ).hide();
$( '<span class="placeholder" style="display: none;"></span>' ).insertAfter( this );
$( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', data );
$( this ).attr( 'style', 'display: list-item;' );
data = $.collapsibleTabs.getSettings( $( ele ) );
if ( data )
{
expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
if ( expContainerSettings )
{
expContainerSettings.shifting = false;
$.collapsibleTabs.handleResize();
}
}
这看起来像是错误
$( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', data );
我怎么能解决这个问题?
答案 0 :(得分:0)
在将data
变量传递给data
方法之前,您需要在undefined
变量上设置所需的值。就目前而言,您正在传递var data, expContainerSettings; // <-- Both of these are undefined.
,因为您只需声明变量:
data = $.collapsibleTabs.getSettings( $( ele ) );
在JavaScript中,在将变量传递给函数后,您无权更改变量的值。
只要没有发生异步操作,解决方案可能就像执行此行一样简单:
$( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', data );
在执行此行之前:
{{1}}