從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加載的,請參閱我的其他答案,不能圖它帶出你的代碼 '