在 Play 2.4 应用程序的 View 中,我想迭代一些数据,并为每次迭代创建 Javascript 代码。生成的 Javascript 看起来没问题,但是当我单击按钮时无法触发事件。
@for(site <- sites) {
<div class="item">
<div class="item-site-pres">
<span class="item-site-title"><a href="@site.url">@site.title</a></span>
</div>
<div id="div@site.url" class="item-site-desc">
<center>
Load Site
<input type='button' value='+' id='input@site.url' />
</center>
</div>
}
Javascript
<script type="text/javascript" charset="utf-8">
var load@site.url = function() {
var url = @site.url;
var website = @site.website;
jsRoutes.controllers.Application.loadAjax(url,website).ajax({
success: function(data) {
$("#div@site.url").html(data);
},
error: function() {
alert("Error!")
}
})
};
$("#input@site.url").click(load@site.url);
</script>
生成的 div 示例
<div id="divhttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210" class="item-site-desc">
<center>
Load Site
<input id="inputhttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210" type="button" value="+">
</center>
</div>
生成的示例 Javascript
<script charset="utf-8" type="text/javascript">
var loadshttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210 = function() {
var url = http://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210;
var website = L'Equipe.fr;
jsRoutes.controllers.Application.loadAjax(url,website).ajax({
success: function(data) {
$("#divhttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210").html(data);
},
error: function() {
alert("Error!")
}
})
};
$("#inputhttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210").click(loadhttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210);
</script>
感谢您的支持
最佳答案
假设你的JS是这样的问题,你必须修复字符串值的引用,否则它将无法工作。
如果没有将值包装在""
中,var website = L'Equipe.fr
永远不会是有效的 JS 字符串。 varloadshttp://www.lequipe.fr/Natation/Actualites/Retour-manque-pour-agnel/491210
的语法都没有问题。
关于javascript - Play 2 框架 + Loop for + 动态Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25361961/