使用ajax导航时,在页面上运行ajax脚本?

时间:2010-05-29 20:15:42

标签: c# asp.net-mvc ajax

我在ASP.NET MVC项目中遇到了一些问题。

我在右下角有一个聊天div(比如facebook),当然导航到我的所有导航都是ajax时我不想重新加载。

我面临的问题是我在视图页面的顶部使用以下代码:

<script type="text/javascript">
$(document).ready(function() {
  $('#divTS').hide();
    $('a#showTS').click(function() {
 $('#divTS').slideToggle(400);
 return false;
  });
});

</script>

问题是这个代码只加载了ajax并且似乎没有触发?我想在新加载的视图中运行所有脚本,就像我没有使用ajax导航一样。

我不能把它放在site.master中,因为它只加载一次然后可能我试图隐藏的div不存在。

是否有一种在ajax加载的div中运行脚本的好方法?

2 个答案:

答案 0 :(得分:0)

导航到另一个视图时,会重新加载母版页。您还可以检查div是否存在$('#div').length > 0

顺便说一句,不应该使用“完整网站”ajax导航。重新加载导航聊天 - 最好将其放入控件中(使事情变得更容易)。

答案 1 :(得分:0)

您需要在ajax脚本的成功回调函数中运行脚本。我建议你把它外化成一个单独的函数:

function setupEffects() {
    $('#divTS').hide();
    $('a#showTS').click(function() {
        $('#divTS').slideToggle(400);
        return false;
    });
}

$(document).ready(function() {
    setupEffects();
});

在脚本的成功回调中调用此函数:

success: function(result) {
    setupEffects();
}