2012-03-21 76 views
0

我在我的视图和循环过程中有一个循环我想将值传递给一个jQuery并将值返回给div。ASP.NET MVC 3从视图传递参数到jQuery

查看

@foreach (var item in Model){ 
    <p>@item.Title;</p> 
    <div id="timeDisplay" onload="test(@item.DateTime);"></div> 
} 

jQuery的

$(function() { 
    function test(var datetime){ 
     $("#timeDisplay").html(datetime); 
    } 
}); 

负载的功能不工作,我缺少什么?

+1

您的'test'函数不能在'$(document).ready()'之外访问。 – jrummell 2012-03-21 18:53:23

回答

1

移动的test$(document).ready()

$(function() { 
    // document ready stuff 
}); 

function test(var datetime){ 
    $("#timeDisplay").html(datetime); 
} 

而不是使用onl oad属性,那么使用$(document).ready()可能会更好。此外,请注意,您有多个ID为timeDisplay的div - 请改为使用类。

@foreach (var item in Model) { 
    <p>@item.Title</p> 
    <div class="timeDisplay" data-date="@item.DateTime"></div> 
    } 

$(function() { 
    // document ready stuff 
    $(".timeDisplay").each(function() { 
     $(this).html($(this).data("date")); 
    }); 
}); 
+0

仍然不起作用,测试函数不会执行。 – Ben 2012-03-21 19:28:12

+0

您是否看到错误?你可以从控制台运行'test()'吗? – jrummell 2012-03-21 19:36:29

1

我会使用数据属性的是这样的:

@foreach (var item in Model){ 
    <p>@item.Title;</p> 
    <div id="timeDisplay" data-DateTime="@item.DateTime"> 
    </div> 
    } 

$(function() { //anyone know how to do this without the temp? 
    var $el = $("#timeDisplay"); 
    $el.html($el.data('DateTime')); 
}); 
1

你需要在你的服务器数据报价:

onload="test('@item.DateTime');"

+0

当!无法在手机上格式化! – 2012-03-21 18:49:28

+0

@斯特凡谢谢! – 2012-03-21 18:53:21

+0

非常欢迎,很好的接收! – Stefan 2012-03-21 18:58:01

1

不应该像您在示例中那样创建多个共享相同ID的元素。

此外,你的Javascript不会做任何事。知道你在这里瞄准什么会很高兴。这足以显示项目属性;

@foreach (var item in Model) { 
    <p>@item.Title;</p> 
    <div class="timeDisplay">@item.DateTime</div> 
} 
+0

当前我有一个js函数,它在页面加载时显示倒数计时器。它生成targetDate和init()函数得到执行....它工作正常,例如 >> targetDate = new Date(“2012年12月20日,13:00:00”).getTime()/ 1000; >> init(); 但我想要做的是通过循环的日期时间,它应该创建自己的倒计时时间,我希望它是有道理的。 thx – Ben 2012-03-21 19:20:20

+0

我将如何能够避免使用相同的ID?有没有办法解决这个问题...... – Ben 2012-03-21 19:37:09

+0

你可以使用一个CSS class并创建一个jQuery函数来为所有具有class的元素生成倒计时。请参阅@jrummells回答他使用'data'属性的位置。 – Stefan 2012-03-22 08:13:46

相关问题