我正在尝试在我公司的 ERP 中创建通知系统,类似于 Facebook 系统。现在,经过几个小时的工作,它看起来像这样:
每个菜单项都是一个li
元素。每个元素都可以有一个类来修改它的背景颜色:
selected
是蓝色的,显示在图片上restricted
是红色的
现在,我想要实现的是li
在某些事件上使背景闪烁(当新消息进来并且列表没有打开(并且selected
类也不存在)时)。
问题是:它不会闪烁。:(
这是我的 html 快照(不包括消息框)
<li class="notifications-topmenu-button selected">
<a href="#">
<div class="notifications-topmenu-button-wrapper">
<div class="notifications-topmenu-button-icon">
<img class="transparent" width="13" height="13" align="absmiddle" src="/images/icons/notifications.png" title="Powiadomienia" alt="Powiadomienia">
</div>
<div class="notifications-topmenu-button-counter" style="display: block;">3</div>
</div>
</a>
<span class="divider"> : </span>
</li>
<li class="selected">
<a href="/system_dev.php/users/profile">Strona główna</a>
<span class="divider"> : </span>
</li>
此外,还有一些 JavaScript 启动对象(不要介意注释):
function notificationsObject(){
var nl = new Object();
//atrybuty klasy
nl.liElement = $('.notifications-topmenu-button');
nl.menuButton = $('.notifications-topmenu-button-wrapper');
nl.menuButtonCounter = nl.menuButton.find('.notifications-topmenu-button-counter');
nl.notificationsCount = jQuery.trim(nl.menuButtonCounter.text());
nl.notificationsList = $('.notifications-list-wrapper');
nl.blinkingInterval = null;
nl.startBlinking = function(){
nl.blinkingInterval = setInterval(function(){
if(nl.liElement.hasClass('restricted') == false){
console.debug(nl.liElement.addClass('restricted'));
}
else {
nl.liElement.removeClass('restricted');
}
}, 1000);
}
nl.stopBlinking = function(){
if(nl.blinkingInterval != null) nl.blinkingInterval = null;
}
(more 'class' functions)
return nl;
}
现在要测试它,我只需调用
$(document).ready(function(){
var notifications = notificationsObject();
notifications.startBlinking();
});
当然我在函数声明之后调用它。
有趣的事实是,当我将nl.startBlinking
函数setInterval
内部更改为仅添加restricted
类时,它可以工作。我很确定它一定是一些错字或愚蠢的错误,但我找不到它。
请帮忙!