2014-03-29 47 views
0

我有两个div标签。点击第一个div标签时,发生AJAX调用,第二个div标签替换第一个div标签。使用JQuery显示隐藏的div内容

我在第二个div标签中有Back按钮。点击后退按钮,我应该可以看到第一个div标签被第二个div标签取代。

这里是我的剃刀代码:

<div id="tag1" onclick="show_placedetail()> 
    <a href="#" class="button button-small button-style3 butcurve-sml">View</a> 
</div> 

<div id="tag2"> 
    <a href="#" class="button button-small button-style4 butcurve-sml" onclick="show_placelist()">Back</a> 
</div> 

这里是我的AJAX调用:

@using (Ajax.BeginForm("Detail", "Places", new AjaxOptions 
    { 
     HttpMethod = "POST", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "tag1", 
    }, new { name = "PlaceDetailsForm", id = "PlaceDetailsForm" })) 
{ 
    <input type="hidden" name="locationId" id="locationId" /> 
    <input type="hidden" name="distance" id="distance" /> 
} 

这里是我的JQuery:

function show_placedetail() { 
    $('#tag1').hide(); 
    $('#PlaceDetailsForm').submit(); 
} 

function show_placelist() { 
    $('#tag2').hide(); 
    $('#tag1').show(); 
} 

我已经检查了的.html( )第一个div标签的内容在AJAX调用后清空。

我应该怎么做才能显示在AJAX期间被另一个div标签替换的div标签?我是否需要调用另一个AJAX调用来显示第一个div内容?

请指教。

在此先感谢。

回答

0

我弄清了我的错误。

其实,我正在用AJAX取代我的第一个div。因此,如果我试图再次展示它,它将不可用。所以我创建了一个父标签,并将其中的两个标签。我将InsertionMode选项更改为InsertAfter。

现在它工作正常。

这是我更新的剃刀代码:

我的更新AJAX代码:

@using (Ajax.BeginForm("Detail", "Places", new AjaxOptions 
    { 
     HttpMethod = "POST", 
     InsertionMode = InsertionMode.InsertAfter, 
     UpdateTargetId = "parent", 
    }, new { name = "PlaceDetailsForm", id = "PlaceDetailsForm" })) 
{ 
    <input type="hidden" name="locationId" id="locationId" /> 
    <input type="hidden" name="distance" id="distance" /> 
}