当前位置:  编程技术>WEB前端
本页文章导读:
    ▪jQuery操作cookie 的方法      转载于:http://blog.163.com/lih_dodo@126/blog/static/30551823201111411926425/jQuery cookie是个很好的cookie插件,大概的使用方法如下example $.cookie(’name’, ‘value’); 设置cookie的值,把name变量的值.........
    ▪jQuery Deferred      Deferred是jQuery中对CommonJS的异步模型实现,旨在提供通用的接口,简化异步编程难度。其实一个可链式操作的对象,提供多个回调函数的注册,以及回调列队的回调,并转达任何异步操作成功.........
    ▪使用jquery实现图文切换效果      前端开发过程中需要不断学习,不断温习。最近计划白天继续温习jquery,晚上学习下原生javascript,然后利用一些时间做做网站推广SEO来着。计划暂时这些。  白天活干完,弄个jquery仿凡客.........

[1]jQuery操作cookie 的方法
    来源:    发布时间: 2013-11-06

转载于:http://blog.163.com/lih_dodo@126/blog/static/30551823201111411926425/

jQuery cookie是个很好的cookie插件,大概的使用方法如下

example $.cookie(’name’, ‘value’); 设置cookie的值,把name变量的值设为value

example $.cookie(’name’, ‘value’, {expires: 7, path: ‘/’, domain: ‘jquery.com’, secure: true}); 新建一个cookie 包括有效期 路径 域名等

example $.cookie(’name’, ‘value’); 新建cookie

example $.cookie(’name’, null); 删除一个cookie

var account= $.cookie('name'); 取一个cookie(name)值给myvar

代码如下

1 // JavaScript Document
2 jQuery.cookie = function(name, value, options) {
3 if (typeof value != 'undefined') { // name and value given, set cookie
4 options = options || {};
5 if (value === null) {
6 value = '';
7 options.expires = -1;
8 }
9 var expires = '';
10 if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
11 var date;
12 if (typeof options.expires == 'number') {
13 date = new Date();
14 // date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));//单位太大,换一个。
15 date.setTime(date.getTime() + (options.expires * 60 * 60 * 1000));
16 } else {
17 date = options.expires;
18 }
19 expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
20 }
21 var path = options.path ? '; path=' + options.path : '';
22 var domain = options.domain ? '; domain=' + options.domain : '';
23 var secure = options.secure ? '; secure' : '';
24 document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
25 } else { // only name given, get cookie
26 var cookieValue = null;
27 if (document.cookie && document.cookie != '') {
28 var cookies = document.cookie.split(';');
29 for (var i = 0; i < cookies.length; i++) {
30 var cookie = jQuery.trim(cookies[i]);
31 // Does this cookie string begin with the name we want?
32 if (cookie.substring(0, name.length + 1) == (name + '=')) {
33 cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
34 break;
35 }
36 }
37 }
38 return cookieValue;
39 }
40 };

 

 

本文链接


    
[2]jQuery Deferred
    来源:    发布时间: 2013-11-06

Deferred是jQuery中对CommonJS的异步模型实现,旨在提供通用的接口,简化异步编程难度。

其实一个可链式操作的对象,提供多个回调函数的注册,以及回调列队的回调,并转达任何异步操作成功或失败的消息。

由于其对jQuery Callbacks的依赖性,如果没有概念的朋友可以查看jQuery Callbacks。

 

jQuery.Deferred( [beforeStart ] )

创建一个Deferred对象。

beforeStart:

类型: Function( Deferred deferred )
一个在构造函数返回前运行的处理函数。

 

resolve、reject、notify

Defferred中定义了三种动作,resolve(解决)、reject(拒绝)、notify(通知),对应Callbacks对象的fire动作。

进而又提供了可以定义运行时的this对象的fire,即fireWith,所以又有扩展了三个对应的操作resolveWith、rejectWith、notifyWith。

内部对应的事件分别是:done(操作完成)、fail(操作失败)、progress(操作进行中),也就是Callbacks对象的add方法添加监听。

举个简单的例子,我们可以通过deferred.done注册上一个动作完成后的,那么当有地方触发了deferred.resolve或者deferred.resolveWith(这两个方法的差别在于能不能定义回调函数的this对象)时,则回调注册的函数。

其他对应的也是一样的。

代码上大概是这样的:

var dtd = $.Deferred(); // 新建一个deferred对象
var wait = function(dtd){
var tasks = function(){
alert("执行完毕!");
dtd.resolve(); // 改变deferred对象的执行状态
};
setTimeout(tasks,5000);
return dtd;
};

这样我们就有了一个5000ms延迟的wait函数。于是我们就可以这么调用:

wait(dtd).done(function(){ alert("成功了!"); })
.fail(function(){ alert("出错啦!"); });

 

then

then方法提供了三种事件的注册,只要按顺序作为参数传进去就可以了。

then: function( /* fnDone, fnFail, fnProgress */ ) {
//分别对应完成后运行的函数,失败后运行的函数,正在运行过程中运行的函数
var fns = arguments;
//返回一个新的Deferred的promise,then是上一个Deferred运行后才运行的
return jQuery.Deferred(function( newDefer ) {
//分别对不同状态注册函数
jQuery.each( tuples, function( i, tuple ) {
var action = tuple[ 0 ], //取出动作名
fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; //取出对应回调函数
// 分别对当前的Deferred对象注册回调函数,也就是注册deferred[ done | fail | progress ]
deferred[ tuple[1] ](function() {
var returned = fn && fn.apply( this, arguments );
//如果传进来的回调函数会返回Deferred对象则在该对象上注册事件
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise()
.done( newDefer.resolve )
.fail( newDefer.reject )
.progress( newDefer.notify );
//否则对创建出来的newDefer执行对应事件
} else {
//如果上一个函数有返回值则接受传返回值,否则传上一个Deferred传来的参数
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
}
});
});
fns = null;
}).promise();
},

 

Promise

Promise只提供Deferred对象中的then, done, fail, always, pipe. isResolved, 和isRejected,防止用户自行改变Deferred的状态。

 

完整的Deferred

jQuery.Deferred = function( func ) {
var tuples = [
// 动作, 监听事件, 回调函数列队, 最终状态
[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
[ "notify", "progress", jQuery.Callbacks("memory") ]
],
state = "pending",
//定义promise对象
promise = {
//返回当前状态
state: function() {
return state;
},
//无论成功还是失败都运行回调函数
always: function() {
deferred.done( arguments ).fail( arguments );
return this;
},
then: function( /* fnDone, fnFail, fnProgress */ ) {

    
[3]使用jquery实现图文切换效果
    来源: 互联网  发布时间: 2013-11-06
前端开发过程中需要不断学习,不断温习。最近计划白天继续温习jquery,晚上学习下原生javascript,然后利用一些时间做做网站推广SEO来着。计划暂时这些。 
白天活干完,弄个jquery仿凡客诚品图片切换的效果 
以前写的不是很好,今天重新做个 jquery特效,其实很简单,漠然回首也就那回事。 
先来个原型吧,锋利的jquery第一个例子,相信大家都很熟悉。没错,你绝对没看错。 
代码如下 
  • <div class="menu"> 
  •     <div class="has_children"> 
  •         <span>第一张</span> 
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •         <a href=/blog_article/"">11111111</a> _/li/index.html>
  •     </div> 
  •     <div class="has_children"> 
  •         <span>第二张</span> 
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •         <a href=/blog_article/"">22222222</a> _/li/index.html>
  •     </div> 
  •     <div class="has_children"> 
  •         <span>第三张</span> 
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •         <a href=/blog_article/"">33333333</a> _/li/index.html>
  •     </div> 
  •     <div class="has_children"> 
  •         <span>第四张</span> 
  •         <a href=/blog_article/"">44444444</a> _/li/index.html>
  •         <a href=/blog_article/"">44444444</a> _/li/index.html>

  •     
  • 最新技术文章:
    ▪css white-space:nowrap属性用法(可以强制文字不...
    ▪IE里button设置border:none属性无效解决方法
    ▪border:none与border:0使用区别
    ▪html清除浮动的6种方法示例
    ▪三个不常见的 HTML5 实用新特性简介
    ▪css代码优化的12个技巧
    ▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
    ▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
    ▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
    ▪小技巧处理div内容溢出
    ▪html小技巧之td,div标签里内容不换行
    ▪纯CSS实现鼠标放上去改变文字内容
    ▪li中插入img图片间有空隙的解决方案
    ▪CSS3中Transition属性详解以及示例分享
    ▪父div高度不能自适应子div高度的解决方案
    ▪告别AJAX实现无刷新提交表单
    ▪从零学CSS系列之文本属性
    ▪HTML 标签
    ▪CSS3+Js实现响应式导航条
    ▪CSS3实例分享之多重背景的实现(Multiple background...
    ▪用css截取字符的几种方法详解(css排版隐藏溢...
    ▪页面遮罩层,并且阻止页面body滚动。bootstrap...
    ▪CSS可以做的几个令你叹为观止的实例分享
    ▪详细分析css float 属性以及position:absolute 的区...
    ▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
    ▪CSS小例子(只显示下划线的文本框,像文字一...
    ▪可以给img元素设置背景图
    ▪不通过JavaScript实现的自动滚动视差效果
    ▪div+CSS 兼容小摘
    ▪CSS的inherit与auto使用分析
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3