无法在更改函数jquery中输出变量

时间:2017-11-23 16:09:29

标签: javascript jquery variables

我将在jquery中使用change函数获取select值。我使用了一个全局变量来获取值,但是console.log不能在我的函数之外工作:

<DataGrid Name="DataGrid" AutoGenerateColumns="False"  
              Height="Auto" Width="780" Margin="10,10,10,10"
              IsReadOnly="True" ItemsSource="{Binding Path=PreloadedRailcarstList}"
              SelectedItem="{Binding Path=BaseProductToUpdate}"
              AlternationCount="2" AlternatingRowBackground="LightBlue">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsOverFilled}" Value="True">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>
                <DataTrigger Binding="{Binding IsOverWeighed}" Value="True">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDoubleClick">
            <i:InvokeCommandAction Command="{Binding Path=DataContext.OpenUpdateBaseProductViewCmd , RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding BaseProductToUpdate.name}"/>
        </i:EventTrigger>
        <i:EventTrigger EventName="PreviewKeyDown">
            <i:InvokeCommandAction Command="{Binding Path=DataContext.OpenUpdateBaseProductViewCmd , RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding BaseProductToUpdate.name}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    ...
</DataGrid>

控制台日志只适用于此代码:

jQuery(function($) {
    var formule;

    $('#group_14').on('change', function() {
       formule = this.value;
    }); 

   console.log(formule);
});

我希望在其他函数中恢复我的jQuery(function($){ var formule; $('#group_14').on('change', function() { formule = this.value; console.log(formule); }); }); 变量以使用它,如何在我的所有脚本中返回我的变量?

1 个答案:

答案 0 :(得分:2)

想一想在页面加载时会发生什么事情:

在下面的代码段中,console.log <{1}}事件 ,因此会在页面加载时输出到控制台,即之前已解雇,change在此时未被初始化为

formule

以下代码段将在jQuery(function($){ var formule; $('#group_14').on('change', function() { formule = this.value; }); //outside of the change event, formule is null or undefined //until the event is fired and formule is intialised console.log(formule); }); 事件初始化 formule之后输出formule 的值

change