模拟当有新消息到来的时候,通过在标题闪烁“新消息”字样进行提示。
在视图文件中加入以下脚本:
<!-- Mainly scripts -->
<script src="__PUBLIC__/js/jquery-2.1.1.min.js"></script>
<!--提示信息-->
<script type="text/javascript">
;(function($) {
$.extend({
/**
* 调用方法: var timerArr = $.blinkTitle.show();
* $.blinkTitle.clear(timerArr);
*/
blinkTitle : {
show : function() { //有新消息时在title处闪烁提示
var step=0, _title = document.title;
var timer = setInterval(function() {
step++;
if (step==3) {step=1};
if (step==1) {document.title="【 】"+_title};
if (step==2) {document.title="【新消息】"+_title};
}, 500);
return [timer, _title];
},
/**
* @param timerArr[0], timer标记
* @param timerArr[1], 初始的title文本内容
*/
clear : function(timerArr) { //去除闪烁提示,恢复初始title文本
if(timerArr) {
clearInterval(timerArr[0]);
document.title = timerArr[1];
};
}
}
});
})(jQuery);
jQuery(function($) {
var timerArr = $.blinkTitle.show();
setTimeout(function() { //此处是过一定时间后自动消失
$.blinkTitle.clear(timerArr);
}, 10000);
//若认为操作消失,只需如此调用: $.blinkTitle.clear(timerArr);
});
</script>注意:
1、
(function($) {…})(jQuery) 实际上是匿名函数。
function(arg){…}定义了一个匿名函数,参数为arg。而调用该函数时,需要在函数后面写上括号和实参,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);
2、
$(function(){…});
或者:
jQuery(function($) {
…
});
允许绑定一个在DOM(不包含图片)文档载入完成后执行的函数。这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。
全写是:
$(document).ready(function(){
…
});
版权声明:本文为liuruiqun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。