我在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中运行脚本的好方法?
答案 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();
}