2015-04-21 95 views
-1

希望能够快速,轻松地完成。我试图组织一个页面标题交换当页面失去像Invision博客的焦点时,我有下面的代码完全适用于实际功能的代码。将变量添加到document.title

唯一的问题是引入不输出的计数变量,也不提供任何错误。

var title = document.title, 
    count = $(".itemCount").text(); 
newTitle = "You have " + count + " items still in your basket " + title; 
document.addEventListener("visibilitychange", function() { 
    document.title = ((document.hidden) ? newTitle : title); 
}); 

和类的HTML是:

<span class="itemCount cornersSmall">20</span> 

我使用jQuery 1.11.0

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script> 

的newTitle的输出本身似乎罚款,有重复标题试了一下变量再次和工作正常,所以只能假设有一个问题,拿起itemCount文本。

+1

你能提供相关的HTML吗? –

+0

你可以显示你的html,至少是.itemCount类的元素吗? –

+0

如果设置标题否则工作,那么问题显然不是'document.title',而是首先获取变量值。 – JJJ

回答

0

OK找到了修复程序。感谢所有帮助引导思考过程方向的评论。这是工作的代码。

(function ($) { 
var itemCount = parseInt($('#basketPreviewPanel .itemCount').text()) 
if (itemCount > 0) { 
    var title = document.title; 
    newTitle = "You have items still in your basket | " + title; 
    document.addEventListener("visibilitychange", function() { 
     document.title = ((document.hidden) ? newTitle : title); 
    }); 
} 
}(window.jQuery)); 

正如你可以看到输出变化不大,由于与计数不更新,由于AJAX问题,所以坚持使用更通用的消息,并使用JS回暖的数量和使用,作为一个IF语句的问题。