未定义的变量传递给数据

时间:2013-11-22 19:19:43

标签: javascript jquery parameters

在这段代码中,未定义的变量传递给数据

 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 );

我怎么能解决这个问题?

1 个答案:

答案 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}}