从ajax调用我得到一个div和一个脚本,用另一个ajax调用填充div。 问题是脚本运行时找不到div。从ajax回调中追加元素后执行脚本
这是剃刀代码:
@model int
@{
var id = string.Format("riga_{0}", Model);
}
<div id="@id">
wait please...
</div>
<script type="text/javascript">
$("#" + "@id").load("/RigaMovimento/Details/@Model");
</script>
产生这样的:
<div id="riga_79">
wait please...
</div>
<script type="text/javascript">
$("#" + "riga_79").load("/RigaMovimento/Details/79");
</script>
ANSWER
并不美丽,但工程:
@using (Ajax.BeginForm("Create", new { movimentoId = Model.MovimentoId }, new AjaxOptions() { InsertionMode = InsertionMode.InsertAfter, UpdateTargetId = "righe", OnSuccess = "run_after" }))
{
<input type="submit" value="New" />
}
<script type="text/javascript">
var run_after;
</script>
的创建视图:
@model int
@{
var id = string.Format("riga_{0}", Model);
}
<div id="@id">
wait please...
</div>
<script type="text/javascript">
run_after = function() {
$('#' + '@id').load(
"/RigaMovimento/Details/@Model",
null,
function() { $('#' + '@id').fadeIn('slow'); });
}
</script>
功能是在添加div之前执行。这意味着它不能找到div – 2011-06-17 12:24:26
使用jQuery就绪语句“$(function(){”,所以脚本会在生成html后执行。如果div是通过DOM加载的,请参阅我的其他答案,不能图它带出你的代码 '