每次有新的模型项时,我想在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'未定义'
答案 0 :(得分:1)
如果您只想捕获要发送给客户的“计数”,那么您可以这样做:
<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
的提醒。
答案 1 :(得分:0)
尝试在doc ready之外移动add函数和变量声明。在你的剃刀执行之前,doc就绪的功能无法使用。