我想在每次有新模型项时在foreach循环中更改全局jquery变量的值。我想在日历中添加新日期,但是直到可以从foreach循环访问这些功能之前,我才能这样做。

*编辑***

我为vov v正确回答了这个问题简化了我的示例。实际代码比添加值大得多,因为它将向日历添加数据。我添加了更多代码以显示它将做得更好

jQuery的:

<div id="calendar" style="width: 500px;" />
<script type="text/javascript">

    $(document).ready(function () {

        var calendar = $('#calendar').glDatePicker(
        {
            showAlways: true,
            borderSize: 0,
            dowOffset: 1,
            selectableDOW: [1, 2, 3, 4, 5],
            selectableYears: [2012, 2013, 2014, 2015],
            specialDates: [
                {
                    date: new Date(2013, 0, 8),
                    data: { message: 'Meeting every day 8 of the month' },
                    repeatMonth: true
                },
                {
                    date: new Date(2013, 5, 7),
                    data: { message: 'Meeting every day 8 of the month' }
                },
            ],
            onClick: function (target, cell, date, data) {
                target.val(date.getFullYear() + ' - ' +
                            date.getMonth() + ' - ' +
                            date.getDate());

                if (data != null) {
                    alert(data.message + '\n' + date);
                }
            }
        }).glDatePicker(true);

        $('#visible').change(function () {
            var showAlways = eval($(this).val());
            calendar.options.showAlways = showAlways;

            if (!showAlways) {
                calendar.hide();
            }
            else {
                calendar.show();
            }
        });

    });
       var value = 0;

        $('#total').click(function () {
            alert(value);
        });


        function add() {

        // will eventually add new specialDates to the calendar taken from model items

        //test lines
        //value = value + 1;
            //return value;
        }

</script>


剃刀视图:

<input type="button" id="total"  />

@foreach (var item in Model){
    if (item.AppointmentStatus == "active")
{
    // item display code

    @: <script type="text/javascript"> add();</script>
}

if (item.AppointmentStatus == "history")
{
        // item display code
}


}

我运行它并在下面得到错误,因为它没有看到其他代码

'0x800a1391-JavaScript运行时错误:'add'未定义'

最佳答案

如果您只想捕获要发送给客户的“数量”,则可以这样简单地进行操作:

<script>
    var value = '@Model.Count';
    // the rest of you script goes here
    $(document).ready(function () {
        $('#total').click(function () {
            alert(value);
        }
    });
</script>


因此,假设您的模型中有7个项目,那么将生成的html是这样的:

var value = 7;


当您单击该total元素时,它将以文本7提醒您。

关于javascript - 在foreach循环中引用全局jquery函数变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16316684/

10-10 05:08