我有一个局部视图,当我在这个局部视图中点击一个链接时,我会在网址中添加一个hashset并发出ajax请求并更新视图;(我尝试的是当我单击后退按钮再次加载上一个局部视图)。问题是,在文档就绪时,如果hashet中有变化,我会检查每一秒 - 而且似乎每次检查checHash finction中的变量recenthash
都是空的。可能是什么原因。
@model MvcBeaWeb.GroupMenu
<div class="lc-container-contentmenu">
foreach (MvcBeaDAL.WebServiceBeaMenu item in Model.MenuLeft)
{
@Html.ActionLink(@item.SpecialWord, "ImportShow", new { menuID = @item.ID, articlegroupID = @item.ArticlegroupID })
}
</div>
<script>
var recentHash = '';
function hashChange() {
var page = location.hash.slice(1);
if (page != "") {
jQuery.ajax({
url: page
}).done(function (data) {
$("#importPartUpdate").html(data);
})
}
}
function checkHash() {
var hash = location.hash;
if (hash) {
if (hash == recentHash) {
return;
}
recentHash = hash;
hashChange();
}
}
$(function () {
$('.ajaxLinks a').click(function (e)
{
location.hash = $(this).attr('href')
return false;
})
setInterval(checkHash, 1000);
});
</script>
答案 0 :(得分:0)
这是范围界定的问题。
var recentHash
和recentHash
(在window.hash上定义)的范围不同。
http://ryanmorr.com/understanding-scope-and-context-in-javascript/