<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<title><![CDATA[jQuery资源宝库]]></title>
<link><![CDATA[http://www.itivy.com/jquery]]></link>
<description><![CDATA[每天给大家分享一点jQuery，同时也不断充实自己]]></description>
<language><![CDATA[zh-cn]]></language>
<copyright><![CDATA[]]></copyright>
<webMaster><![CDATA[]]></webMaster>
<generator><![CDATA[]]></generator>
<Image><![CDATA[]]></Image>
<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2012/2/9/jquery-php-make-switch.html]]></link>
<title><![CDATA[巧妙利用jQuery和PHP打造功能开关效果]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Thu, 09 Feb 2012 21:52:41 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>本文介绍了使用jQuery、PHP和MySQL实现类似360安全卫士防火墙开启关闭的开关，可以将此功能应用在产品功能的开启和关闭功能上。</p>
<p><img src="/Upload/EditorImage/image/jquery/201202/20120209214619_3282.gif" alt="" border="0" /></p>
<p>准备工作为了更好的演示本例，我们需要一个数据表，记录需要的功能说明及开启状态，表结构如下：</p>
<p></p>
<pre class="brush:sql;">CREATE TABLE `pro` (  
  `id` int(11) NOT NULL auto_increment,  
  `title` varchar(50) NOT NULL,  
  `description` varchar(200) NOT NULL,  
  `status` tinyint(1) NOT NULL default '0',  
  PRIMARY KEY  (`id`)  
) ENGINE=MyISAM  DEFAULT CHARSET=utf8; </pre><p></p>
<p>你可以向表中pro插入几条数据。</p>
<p><strong>index.php</strong></p>
<p>我们要在页面显示相关功能列表，使用PHP读取数据表，并以列表的形式展示。</p>
<p></p>
<pre class="brush:bash;">&lt;?php   
   require_once('connect.php'); //连接数据库   
   $query=mysql_query("select * from pro order by id asc");   
   while ($row=mysql_fetch_array($query)) {   
   ?&gt;   
   &lt;div class="list"&gt;   
     &lt;div class="fun_title"&gt;   
        &lt;span rel="&lt;?php echo $row['id'];?&gt;" &lt;?php if($row['status']==1){ ?&gt;   
class="ad_on" title="点击关闭"&lt;?php }else{?&gt;class="ad_off" title="点击开启"&lt;?php }?&gt;&gt;&lt;/span&gt;   
        &lt;h3&gt;&lt;?php echo $row['title']; ?&gt;&lt;/h3&gt;   
     &lt;/div&gt;   
     &lt;p&gt;&lt;?php echo $row['description'];?&gt;&lt;/p&gt;   
   &lt;/div&gt;   
 &lt;?php } ?&gt;</pre><p></p>
<p>连接数据库，然后循环输出产品功能列表。</p>
<p><strong>CSS</strong></p>
<p>为了渲染一个比较好的页面外观，我们使用CSS来美化页面，使得页面更符合人性化。使用CSS,我们只需用一张图片来标识开关按钮。</p>
<p><img src="/Upload/EditorImage/image/jquery/201202/20120209214837_0356.gif" alt="" border="0" /></p>
<p></p>
<pre class="brush:css;">.list{padding:6px 4px; border-bottom:1px dotted #d3d3d3; position:relative}   
.fun_title{height:28px; line-height:28px}   
.fun_title span{width:82px; height:25px; background:url(switch.gif) no-repeat;    
cursor:pointer; position:absolute; right:6px; top:16px}   
.fun_title span.ad_on{background-position:0 -2px}   
.fun_title span.ad_off{background-position:0 -38px}   
.fun_title h3{font-size:14px; font-family:'microsoft yahei';}   
.list p{line-height:20px}   
.list p span{color:#f60}   
.cur_select{background:#ffc} </pre><p></p>
<p>CSS代码，我不想详述，提示下我们使用了一张图片，然后通过background-position来定位图片的位置，这是大多数网站使用的方法，好处咱就不说了。</p>
<p><strong>jQuery</strong></p>
<p>我们通过单击开关按钮，及时请求后台，改变对应的功能开关状态。这个过程是一个典型的Ajax应用。通过点击开关按钮，前端向后台PHP发送post请求，后台接收请求，并查询数据库，并将结果返回给前端，前端jQuery根据后台返回的结果，改变按钮状态。</p>
<p></p>
<pre class="brush:js;">$(function(){   
    //鼠标滑向换色   
    $(".list").hover(function(){   
        $(this).addClass("cur_select");   
    },function(){   
        $(this).removeClass("cur_select");   
    });   
       
    //关闭   
    $(".ad_on").live("click",function(){   
        var add_on = $(this);   
        var status_id = $(this).attr("rel");   
        $.post("action.php",{status:status_id,type:1},function(data){   
            if(data==1){   
                add_on.removeClass("ad_on").addClass("ad_off").attr("title","点击开启");   
            }else{   
                alert(data);   
            }   
        });   
    });   
    //开启   
    $(".ad_off").live("click",function(){   
        var add_off = $(this);   
        var status_id = $(this).attr("rel");   
        $.post("action.php",{status:status_id,type:2},function(data){alert(data);     
            if(data==1){   
                add_off.removeClass("ad_off").addClass("ad_on").attr("title","点击关闭");   
            }else{   
                alert(data);   
            }   
        });   
    });   
}); </pre><p></p>
<p>说明，代码中，首先实现了鼠标滑向功能列表换色的功能(详见demo)，然后就是单击开关按钮，向后台action.php发送Ajax请求，提交
的参数是对应功能的id和type，用于后台区分请求的是哪个功能和请求的类型(开启和关闭)。其实，大家稍微留神，可以看出，根据Ajax请求成功返回
结果后，开关按钮动态改变样式，实现改变开关状态的功能。</p>
<p><strong>action.php</strong></p>
<p>后台action.php接收到前端的请求，根据参数执行SQL语句，更新对应功能的状态，成功后将结果返回给前端，请看代码：</p>
<p></p>
<pre class="brush:js;">require_once('connect.php');   
$id = $_POST['status'];   
$type = $_POST['type'];   
if($type==1){ //关闭   
    $sql = "update pro set status=0 where id=".$id;   
}else{ //开启   
    $sql = "update pro set status=1 where id=".$id;   
}   
$rs = mysql_query($sql);   
if($rs){   
    echo '1';   
}else{   
    echo '服务器忙，请稍后再试！';   
}  </pre><p></p>
<p>结束语通过本文您可以熟练掌握ajax在WEB开发中的应用，并能快速的应用到您的项目中。helloweba将一如既往的为广大开发者提供更具实用性的应用，致力于WEB前端技术的应用。</p>
<p>原文：http://www.helloweba.com/view-blog-153.html</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2012/2/8/jquery-marquee-design.html]]></link>
<title><![CDATA[利用jQuery marquee实现响应设计]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Wed, 08 Feb 2012 21:35:56 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>模板的设计综合多屏幕响应式设计和自运行的jQuery 
marquee(无间断滚动)技术，主要解决的难题是如何根据显示屏幕的大小利用jQuery的Ajax技术加载额外的互操作数据到模板中。利用CSS3
中的媒体查询功能以及包含一组通用的HTML和CSS标签，这个模板提供了非常出色的跨设备的用户体验。</p>
<p>注： 关于仅基于CSS的响应式设计和起始程序模板，更多信息 请参照 针对多屏幕开发的可自定义启动程序设计。</p>
<p><strong>总体介绍: jQuery 和 Dreamweaver</strong></p>
<p>Dreamweaver 
CS5.5其中一个很重要的特征是内嵌的jQuery支持。不论是jQuery的初学者还是一个很有经验的JavaScript开发人员， 
Dreamweaver包含的代码提示功能和内嵌的jQuery支持都无疑提高了开发效率(参照图1)。除了支持JQuery，Dreamweaver 
CS5.5也强力支持CSS3 媒体查询和多屏幕设计(也叫响应式设计)。</p>
<p style="text-align:center;"><img src="/Upload/EditorImage/image/jquery/201202/20120208213309_5906.jpg" alt="" border="0" /></p>
<p style="text-align:center;">图 1. Dreamweaver 支持jQuery代码提示功能.</p>
<p><strong>自定义jQuery 脚本</strong></p>
<p>模板中包含了一个自定义的脚本库，该脚本库由 Codify Design Studio 
开发，用来创建一个可交互主页marquee内容。滚动内容的实现完全基于标准HTML。在模板中marquee内容是由一组面板(也可以称做幻灯片)组
成，每个面板中包含了图片，标题以及用于面板切换的链接。面板和导航的内容是根据marquee_panels.html 
文件中的html动态创建的(参照图2)。因为设置了自动播放功能，所以marquee内容默认是自动播放的，当用户用鼠标操作时，该播放功能自动关闭以
响应用户操作。</p>
<p style="text-align:center;"><img src="/Upload/EditorImage/image/jquery/201202/20120208213340_2879.jpg" alt="" border="0" /></p>
<p style="text-align:center;">图2. 基于HTML内容动态生成面板和导航.</p>
<p>注: 特别鸣谢 Dimas Begunoff授予使用 jQuery Image Preloader plug-in的权限.</p>
<p><strong>基于屏幕大小动态加载</strong></p>
<p>当可视区域的宽度超过550个像素点时，该模板加载包含marquee 
内容的html页面，预加载图片，然后生成可交互的marquee内容。当可视区域的宽度少于550可像素点时，例如通过一个设备访问，marquee 
容器div会被隐藏，只会加载仅包含一个推荐条目的html 文件(参照图3)。这样做是为了在小屏幕上减少加载的内容，但保留CSS3媒体查询功能。</p>
<p>注：仅对Chrome用户。在这边文章发布的时候，Chrome禁止使用Ajax从本地操作系统加载本地文件，这将导致marquee或promo
 区域变成空白区域。但是Chrome支持当从Web服务器上或者本地运行的web service上加载某个文件。更多信息请关注 Chrome 
的开源浏览器项目。</p>
<p style="text-align:center;"><img src="/Upload/EditorImage/image/jquery/201202/20120208213410_8305.jpg" alt="" border="0" /></p>
<p style="text-align:center;">图 3. 基于jQuery返回的可视区域加载的html.</p>
<p>除了使用HTML，CSS和jQuery技术,该模板还包含PSD 文件，用来自定义设计元素来匹配品牌的需求。</p>
<p>观看视频： <a target="_blank" href="http://tv.adobe.com/watch/companion-videos-for-adc/responsive-design-with-jquery-marquee/">使用自定义模板</a></p>
<p>Chris Converse展示了如何使用Dreamweaver jQuery marquee 
模板根据屏幕的大小来加载可交互的数据。利用CSS3的媒体查询功能，并且包含一组通用html 和css 
标签，jQuery的Ajax制造了非常出色的跨设备的用户体验。</p>
<p><strong>预览和下载模板</strong></p>
<p>预览在不同的设备上marquee内容。 <a target="_blank" href="http://download.macromedia.com/pub/developer/html5/template_13.zip">下载</a>该模板相关的HTML，CSS和Photoshop 源文件。</p>
<p style="text-align:center;"><img src="/Upload/EditorImage/image/jquery/201202/20120208213440_5776.jpg" alt="" border="0" /></p>
<p style="text-align:center;">图 4. 预览在不同设备上的marquee内容</p>
<p style="text-align:left;">原文：http://www.adobe.com/cn/devnet/dreamweaver/articles/dw-template-responsive-jquery-marquee.html</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2012/1/9/jquery-blockui-dialog.html]]></link>
<title><![CDATA[jquery blockUI 扩展插件 Dialog]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Mon, 09 Jan 2012 14:55:35 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>对jQuery blockUI插件进行了小的封装扩展，支持confirm、alert、dialog弹出窗口提示信息，支持按钮回调事件。可以自定义css样式、覆盖blockUI的样式等  </p>
<p>首先要到jquery blockUI 官方网址：<a href="http://malsup.com/jquery/block/">http://malsup.com/jquery/block/</a>  </p>
<p>下载jquery.blockUI JS lib：<a href="http://malsup.com/jquery/block/jquery.blockUI.js?v2.38">http://malsup.com/jquery/block/jquery.blockUI.js?v2.38</a>  </p>
<p>而且还需要jquery lib：<a href="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js</a>  </p>
 <p>jquery.blockUI.dialog.js</p>
<pre class="brush:js;">/***

 * jquery blockUI Dialog plugin 

 * v1.1 

 * @createDate -- 2012-1-4

 * @author hoojo

 * @email hoojo_@126.com

 * @requires jQuery v1.2.3 or later, jquery.blockUI-2.3.8

 * Copyright (c) 2012 M. hoo

 * Dual licensed under the MIT and GPL licenses:

 * http://hoojo.cnblogs.com

 * http://blog.csdn.net/IBM_hoojo

 **/

 

;(function ($) {

    

    var _dialog = $.blockUI.dialog = {};

    

    // dialog 默认配置

    var defaultOptions = {

        css: { 

            padding: '8px', 

            opacity: .7, 

            color: '#ffffff', 

            border: 'none', 

            'border-radius': '10px', 

            backgroundColor: '#000000' 

        },

        

        // 默认回调函数 取消或隐藏 dialog

        emptyHandler: function () {

            $.unblockUI();

        },

        

        // 用户回调函数

        callbackHandler: function (fn) {

            return function () {

                fn();

                defaultOptions.emptyHandler();

            };

        },

        

        // confirm 提示 html元素

        confirmElement: function (settings) {

            settings = settings || {};

            var message = settings.message || "default confirm message!";

            var okText = settings.okText || "ok";

            var cancelText = settings.cancelText || "cancel";

            

            if (typeof settings.onOk !== "function") {

                settings.onOk = this.emptyHandler;

            }

            if (typeof settings.onCancel !== "function") {

                settings.onCancel = this.emptyHandler;

            }

            var okCallback = this.callbackHandler(settings.onOk) || this.emptyHandler;

            var cancelCallback = this.callbackHandler(settings.onCancel) || this.emptyHandler;

            

            var html = [

                '&lt;div class="dialog confirm"&gt;',

                '&lt;p&gt;',

                message,

                '&lt;/p&gt;',

                '&lt;input type="button" value="',

                okText,

                '" class="btn ok-btn"/&gt;',

                '&lt;input type="button" value="',

                cancelText,

                '" class="btn cancel-btn"/&gt;'

            ].join("");

            

            var $el = $(html);

            $el.find(":button").get(0).onclick =  okCallback;

            $el.find(":button:last").get(0).onclick = cancelCallback;

            return $el;

        },

        

        // alert 提示html元素

        alertElement: function (settings) {

            settings = settings || {};

            var message = settings.message || "default alert message!";

            var okText = settings.okText || "ok";

            

            if (typeof settings.onOk !== "function") {

                settings.onOk = this.emptyHandler;

            }

            

            var okCallback = this.callbackHandler(settings.onOk) || this.emptyHandler;

            

            var html = [

                '&lt;div class="dialog alert"&gt;',

                '&lt;p&gt;',

                message,

                '&lt;/p&gt;',

                '&lt;input type="button" value="',

                okText,

                '" class="btn ok-btn"/&gt;'

            ].join("");

            

            var $el = $(html);

            

            $el.find(":button:first").get(0).onclick =  okCallback;

            return $el;

        }

    };

    

    var _options = defaultOptions;

    

    // 对外公开的dialog提示html元素，提供配置、覆盖

    $.blockUI.dialog.confirmElement = function () {

        return _options.confirmElement(arguments[0]);

    };

    

    $.blockUI.dialog.alertElement = function () {

        return _options.alertElement(arguments[0]);

    };

    

    // 提供jquery 插件方法

    $.extend({

        confirm: function (opts) {

            var i = (typeof opts === "object") ? 1 : 0;

            var defaults = {

                message: arguments[i++] || "default confirm message!",

                onOk: arguments[i++] || _options.emptyHandler(),

                onCancel: arguments[i++] || _options.emptyHandler(),

                okText: arguments[i++] || "ok",

                cancelText: arguments[i] || "cancel"

            };

            opts = opts || {};

            opts.css = $.extend({}, _options.css, opts.css);

            

            // 覆盖默认配置

            var settings = $.extend({}, _options, defaults, opts);

            settings = $.extend(settings, { message: _dialog.confirmElement(settings) });

            settings = $.extend({}, $.blockUI.defaults, settings);

            $.blockUI(settings);

        },

        alert: function (opts) {

            var i = (typeof opts === "object") ? 1 : 0;

            

            var defaults = {

                message: arguments[i++] || "default alert message!",

                onOk: arguments[i++] || _options.emptyHandler(),

                okText: arguments[i] || "ok"

            };

            

            opts = opts || {};

            opts.css = $.extend({}, _options.css, opts.css);

            

            var settings = $.extend({}, _options, defaults, opts);

            settings = $.extend(settings, { message: _dialog.alertElement(settings) });

            settings = $.extend({}, $.blockUI.defaults, settings);

            $.blockUI(settings);

        },

        

        // dialog提示

        dialog: function (opts) {

            var settings = $.extend({}, $.blockUI.defaults, _options, opts || {});

            $.blockUI(settings);

        },

        // 移除dialog提示框

        removeDialog: function () {

            _options.emptyHandler();

        }

    });

})(jQuery);</pre><p></p>
<p>应用样式文件block.dialog.css</p>
<p>dialog是全局样式，btn是所有按钮的样式、ok-btn是ok按钮样式、cancel-btn是取消按钮样式</p>
<pre class="brush:css;">.dialog {

    font-size: 12px;

}

 

.dialog .btn {

    border: 1px solid white;

    border-radius: 5px;

    min-width: 25%;

    width: auto;

}

 

.dialog .ok-btn {

    background-color: #ccc;

}

 

.dialog .cancel-btn { 

    /*background-color: #aeface;*/

    margin-left: 10%;

}</pre>examples.html<br />
<pre class="brush:xhtml;">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;

&lt;html&gt;

  &lt;head&gt;

    &lt;title&gt;blockUI Dialog Examples&lt;/title&gt;

    

    &lt;meta http-equiv="author" content="hoojo"&gt;

    &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;

    

    &lt;link rel="stylesheet" href="blockUI/block.dialog.css" /&gt;

    &lt;script type="text/javascript" charset="UTF-8" src="mobile/jquery-1.6.4.js"&gt;&lt;/script&gt;

    &lt;script type="text/javascript" charset="UTF-8" src="blockUI/jquery.blockUI-2.3.8.js"&gt;&lt;/script&gt;

    &lt;script type="text/javascript" charset="UTF-8" src="blockUI/jquery.blockUI.dialog-1.1.js"&gt;&lt;/script&gt;

    

    &lt;script type="text/javascript"&gt;

        ;(function ($) {

            $(function () {

            

                // dialog 提示框

                $("#dialog").click(function () {

                    //$.dialog();

                    //$.dialog({message: $("#callback")});

                    $.dialog({

                        //theme: true, // 设置主题需要jquery UI http://www.malsup.com/jquery/block/theme.html                

                        title: "dialog",

                        message: $("#callback"),

                        fadeIn: 1000,

                        fadeOut: 1200

                    });

                    setTimeout($.removeDialog, 2000);

                });

                

                // 带确定、取消按钮提示框，支持事件回调，及message等属性配置

                $("#confirm").click(function () {

                    $.confirm({

                        message: "你确定要删除吗？",

                        okText: "确定",

                        cancelText: "取消",

                        onOk: function () {

                            alert("你点击了确定按钮");

                        },

                        onCancel: function () {

                            alert("你点击了取消按钮");

                        }

                    });

                });    

                

                // 警告提示框 对象模式配置css、message、按钮文本提示

                $("#alert").click(function () {

                    $.alert({

                        message: "你确定要删除吗？",

                        okText: "确定",

                        css: {

                            "background-color": "white",

                            "color": "red"

                        },

                        onOk: function () {

                            alert("你点击了确定按钮");

                        }

                    });

                });

                

                // 非对象配置属性，多个参数配置

                /**

                  $.confirm 方法参数config配置介绍：

                  当第一个参数是一个对象：

                  对象中可以出现以下属性配置，并且可以出现$.blockUI的配置

                      {

                        message: arguments[i++] || "default confirm message!",

                        onOk: arguments[i++] || _options.emptyHandler(),

                        onCancel: arguments[i++] || _options.emptyHandler(),

                        okText: arguments[i++] || "ok",

                        cancelText: arguments[i] || "cancel"

                    }

                    message 是提示框的提示信息

                    onOk是确定按钮的click回调函数

                    onCancel 是取消按钮的click事件回调方法

                    okText是ok按钮的文字 默认是ok

                    cancelText是cancel按钮的文本内容

                  

                  如果第一个参数不是一个对象，那么

                      参数1表示 message 及提示文字

                    参数2表示ok按钮的click事件回调函数

                    参数3表示cancel按钮的click事件回调函数

                    参数4表示ok按钮的文本

                    参数5表示cancel按钮的文本内容

                    

                  注意：如果第一参数是一个对象，后面又出现了相应的参数配置；这种情况下对象配置优先于

                  后面的参数配置，而且参数的位置也会改变：

                      参数1是对象配置

                    参数2表示 message 及提示文字

                    参数3表示ok按钮的click事件回调函数

                    参数4表示cancel按钮的click事件回调函数

                    参数5表示ok按钮的文本

                    参数6表示cancel按钮的文本内容

                */

                $("#confirm2").click(function () {

                    $.confirm({ message: "is a message", timeout: 3000 }, "message", function () {

                            alert("success");

                        }, function () {

                            alert("failure");

                        }, "按钮");

                });    

                

                /**

                   第一个参数是对象配置，当对象配置中出现的选项会覆盖后面的参数配置

                   $.alert 方法 config 介绍：

                   当第一个参数 是一个对象：

                     {

                         message: arguments[i++] || "default alert message!",

                         onOk: arguments[i++] || _options.emptyHandler(),

                         okText: arguments[i] || "ok"

                    }

                    message 是提示框的提示信息

                    onOk是确定按钮回调函数

                    okText是ok按钮的文字 默认是ok

                    

                  当第一个参数不是一个对象的情况下，那么

                    参数1表示 message 及提示文字

                    参数2表示ok按钮的click事件

                    参数3表示ok按钮的文本

                    

                    注意：如果第一个参数是一个对象，对象中出现的配置：message、onOk、okText，这些配置将会

                    覆盖后面的配置，也就是说这些配置在第一个参数中出现后，后面的参数就不需要

                 */

                $("#alert2").click(function () {

                    $.alert({

                        css: {

                            "background-color": "red"

                        },

                        timeout: 1200,

                        onOk: function () {

                            alert("确定");

                        }

                    }, 

                    "你有一条消息", 

                    function () {

                        alert("被覆盖");

                    }, "yes?");

                });        

                

                var _confirm = function (msg) {

                    $.confirm({

                        message: msg,

                        onOk: function () {

                            alert("你点击了确定按钮");

                        },

                        onCancel: function () {

                            alert("你点击了取消按钮");

                        }

                    });

                };

                $("#confirm3").click(function () {

                    _confirm("message");

                });        

                

                var _alert = function (msg) {

                    $.alert({

                        message: msg,

                        css: {

                            "background-color": "white",

                            "color": "red"

                        },

                        onOk: function () {

                            alert("你点击了确定按钮");

                        }

                    });

                }

                $("#alert3").click(function () {

                    _alert();

                });    

            });

        })(jQuery);

    &lt;/script&gt;

    

  &lt;/head&gt;

      

  &lt;body&gt;

      &lt;ul&gt;

          &lt;h2&gt;jQuery blockUI Dialog Demos&lt;/h2&gt;

          &lt;li&gt;dialog demo &lt;input type="button" value="dialog" id="dialog"/&gt;&lt;/li&gt;

          &lt;li&gt;confirm callback demos&lt;input type="button" value="confirm" id="confirm"/&gt;&lt;/li&gt;

          &lt;li&gt;confirm callback demos 2&lt;input type="button" value="confirm" id="confirm2"/&gt;&lt;/li&gt;

          &lt;li&gt;confirm callback demos 3&lt;input type="button" value="confirm" id="confirm3"/&gt;&lt;/li&gt;

          &lt;li&gt;alert callback demos&lt;input type="button" value="alert" id="alert"/&gt;&lt;/li&gt;

          &lt;li&gt;alert callback demos 2&lt;input type="button" value="alert" id="alert2"/&gt;&lt;/li&gt;

          &lt;li&gt;alert callback demos 3&lt;input type="button" value="alert" id="alert3"/&gt;&lt;/li&gt;

      &lt;/ul&gt;

      

      &lt;div style="display: none;"&gt;

          &lt;div id="callback"&gt;

              &lt;p&gt;ok or cancel? asdfaf jQuery blockUI Dialog Demos jQuery blockUI Dialog Demos jQuery blockUI Dialog Demos jQuery blockUI Dialog Demos&lt;/p&gt;

              &lt;input type="button" value="OK" class="btn ok-btn"/&gt;

              &lt;input type="button" value="Cancel" class="btn cancel-btn"/&gt;

          &lt;/div&gt;

      &lt;/div&gt;

  &lt;/body&gt;

&lt;/html&gt;</pre><p></p>
<p>截图效果</p>
<p>confirm</p>
<p><img src="/Upload/EditorImage/image/jquery/201201/20120109145357_1605.png" alt="" border="0" /></p>
<p>alert</p>
<p><img src="/Upload/EditorImage/image/jquery/201201/20120109145417_3005.png" alt="" border="0" /></p>
<p>原文链接：http://www.cnblogs.com/hoojo/archive/2012/01/05/2313059.html</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/12/6/jquery-mobile-json.html]]></link>
<title><![CDATA[利用jQuery Mobile和JSON建立移动应用程序]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Tue, 06 Dec 2011 00:16:50 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>近来移动应用开发迅速受到很多公司的关注，他们寻求为现存的产品和应用程序添加移动展现或者“触点”。即便不是所有，大部分移动应用开发框架也都会适应某种现存的“桌面”开发平台。基于Web的框架则不同。业界当前采用jQuery来创建移动web应用程序.</p>
<p>在移动领域，除了对设备特定属性的支持之外，最主要的一个问题就是程序的大小，正如Aaron Quint所说：</p>
<table style="border:1px dotted #cccccc;table-layout:fixed;" class="ke-zeroborder" align="center" border="0" cellpadding="6" cellspacing="0" width="95%">
    <tbody>
        <tr>
            <td style="word-wrap:break-word;" bgcolor="#fdfddf"><span style="color:#ff0000;">&nbsp;压缩后的jQuery也大概有40-50K，可能还会稍微多一些，此外，如果你想要jQuery  UI和一些动画功能，那么就还需要100K。对于移动设备来说，可能没有那么多空间。</span></td>
        </tr>
    </tbody>
</table>
<p>JQM Alpha 3现在已经精简到17K，其中还有相关的CSS文件。</p>
<p>Enrique Ortiz还发现了JQM的其他优势：</p>
<p>◆总体上的简单性： 你可以主要使用标签驱动的方式开发页面，那样，你只需要使用很少或者不使用JavaScript。</p>
<p>◆进一步改善和得体的降格： jQuery  Mobile哲学是要同时支持高端和性能较差的设备，包括那些不支持JavaScript的设备，并且还要尽可能提供最佳体验。</p>
<p>◆可访问性： jQuery已经支持可访问的富Internet应用程序(WAI-ARIA)，以有助于使用辅助技术让有残疾的访问者也能够访问网页。</p>
<p>◆小文件</p>
<p>◆主题</p>
<p>安装JQM很简单，只需要添加一个样式表文件和三个JavaScript文件：</p>
<p></p>
<pre class="brush:xhtml;">&lt;link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1 /jquery.mobile-1.0a1.min.css" /&gt;  
&lt;script src="http://code.jquery.com/jquery-1.4.3.min.js"&gt;&lt;/script&gt;  
&lt;script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"&gt; &lt;/script&gt;  
&lt;script src="http://jquery.ibm.navitend.com/utils.js"&gt;&lt;/script&gt; </pre><p></p>
<p>此外，Frank还提到，在移动领域JQM的关键优势就在于，它能够使用AJAX让用户界面更平滑：</p>
<table style="border:1px dotted #cccccc;table-layout:fixed;" class="ke-zeroborder" align="center" border="0" cellpadding="6" cellspacing="0" width="95%">
    <tbody>
        <tr>
            <td style="word-wrap:break-word;" bgcolor="#fdfddf"><span style="color:#ff0000;">&nbsp;JQM把Ajax提升了一个层次，这是通过拦截页面请求，并在大多数情况下把这些请求转化为指定的Ajax调用达到的。最基本的结果是，当用户访问使用JQM构建的web应用程序时，只会修改页面的DOM结构，而不是每次都替换所有页面。</span></td>
        </tr>
    </tbody>
</table>
<p>这种效果是通过使用HTML5的data-*属性达到的。在HTML5中，任何带有data-前缀的属性本质上都会被验证解析器忽略，而应用程序可以任意地拦截那些属性。JQM依赖于data-role属性把它的核心功能组合成字符串。</p>
<table style="border:1px dotted #cccccc;table-layout:fixed;" class="ke-zeroborder" align="center" border="0" cellpadding="6" cellspacing="0" width="95%">
    <tbody>
        <tr>
            <td style="word-wrap:break-word;" bgcolor="#fdfddf">&nbsp; <span style="color:#ff0000;">当JQM应用程序从一个页面切换到下一个页面时，发生的主要动作就是内容div中的内容会换成新页面的内容。</span></td>
        </tr>
    </tbody>
</table>
<p>我们可以使用data-rel属性请求窗口如何显示，当它显示出来的时候，data-transition属性会告诉JQM做出相应的转换。我们可
以使用data-filter属性来指定data-role列表的行为，而该列表可以基于输入的关键字来过滤列表的值。Frank还说明了如何创建自定义
的data-*属性，从而实现应用程序的特殊属性。</p>
<p>JQM会在今年上半年发布。Frank最后做出结论：</p>
<table style="border:1px dotted #cccccc;table-layout:fixed;" class="ke-zeroborder" align="center" border="0" cellpadding="6" cellspacing="0" width="95%">
    <tbody>
        <tr>
            <td style="word-wrap:break-word;" bgcolor="#fdfddf">&nbsp; <span style="color:#ff0000;">随着时间的推移，我们期望它能够整合到像PhoneGap之类的框架中，并且可能会整合到像Appcelerator的Titanium等开发环境中。</span></td>
        </tr>
    </tbody>
</table>
<p>你认为基于Web的移动应用程序有前途吗?  这只是框架和开发是否简单的问题，还是移动应用程序非常特殊(因为用户会使用自己的客户端，并期望获得最好的用户体验和安全性)以致于基于Web的应用程序只会成为新平台上的边缘程序。</p>
<p>查看英文原文：<a target="_blank" href="http://www.infoq.com/news/2011/03/jquery-json-mobile-apps" rel="nofollow">Using JQuery Mobile and JSON to Create Mobile Applications</a></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/11/29/jquery-image-player.html]]></link>
<title><![CDATA[分享一个Jquery封装幻灯片效果]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Tue, 29 Nov 2011 23:31:16 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>前几天 在我同事博客里面看到一篇幻灯片 所以觉得用Jqeury写幻灯片也并不是很难 就是和我在博客里面的tab自动切换的原理是一模一样的 
只是形式不同而已！所以今天也写了一个常见的幻灯片效果 用Jquery写的&nbsp; 很简单 也是用我上次tab自动切换的js&nbsp; 所以原理没有什么可说的 
不懂的可以看看上次写的TAB自动切换代码：下面的一张截图：</p>
<p><img src="/Upload/EditorImage/image/jquery/201111/20111129232542_9642.jpg" alt="" border="0" /></p>
<p>就是类似这种幻灯片：</p>
<p>下面是HTML结构和CSS样式</p>
<p></p>
<pre class="brush:xhtml;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; 
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; 
&lt;head&gt; 
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; 
&lt;title&gt;无标题文档&lt;/title&gt; 
&lt;style&gt; 
.Marquee{ width:490px; margin:50px auto 0; overflow:hidden;}  
body,div,ul,li{ margin:0; padding:0;}  
ul,li{ list-style:none;}  
img{ display:block; border:none;}  
.content-main{ width:490px; height:170px; overflow:hidden;}  
.content{ width:490px; height:170px; overflow:hidden;}  
.hide{ display:none;}  
.menu{ width:490px; height:22px; overflow:hidden; background:#966;}  
.menu li{ width:160px; height:22px; overflow:hidden; float:left; line-height:22px; text-align:center;}  
.menu li.last-col{ width:170px; height:22px; overflow:hidden;}  
.current{ background: #F00;}  
.content a{ width:490px; height:170px; overflow:hidden; display:block;}  
&lt;/style&gt; 
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"&gt;&lt;/script&gt;   
&lt;script src="autoTab.js"&gt;&lt;/script&gt; 
&lt;/head&gt; 
 
&lt;body&gt; 
    &lt;div id="Marquee" class="Marquee"&gt;   
        &lt;div class="content-main"&gt; 
            &lt;div class="content"&gt;&lt;a href="#" target="_blank"&gt;&lt;img  src="images/1.jpg"/&gt;&lt;/a&gt;&lt;/div&gt; 
            &lt;div class="content hide"&gt;&lt;a href="#" target="_blank"&gt;&lt;img  src="images/2.jpg"/&gt;&lt;/a&gt;&lt;/div&gt; 
            &lt;div class="content hide"&gt;&lt;a href="#" target="_blank"&gt;&lt;img  src="images/3.jpg"/&gt;&lt;/a&gt;&lt;/div&gt; 
        &lt;/div&gt; 
        &lt;ul class="menu"&gt; 
            &lt;li class="current"&gt;tab1&lt;/li&gt; 
            &lt;li&gt;tab2&lt;/li&gt; 
            &lt;li class="last-col"&gt;tab3&lt;/li&gt; 
        &lt;/ul&gt; 
    &lt;/div&gt;   
    &lt;script type="text/javascript"&gt; 
        new tabMarquee("#Marquee",3);  
    &lt;/script&gt; 
&lt;/body&gt; 
&lt;/html&gt; </pre>JS代码如下:<p></p>
<p></p>
<pre class="brush:js;">// JavaScript Document  
 
function tabMarquee(obj,count){  
    _this = this;  
    _this.obj = obj;  
    _this.count = count;  
    _this.time = 3000;  //停留的时间  
    _this.n = 0;  
    var t;  
    this.slider = function(){  
        $(_this.obj + " .menu li").bind("mouseover",function(event){  
            $(event.target).addClass("current").siblings().removeClass("current");  
            var index = $(_this.obj + " .menu li").index(this);  
            $(_this.obj + " .content-main .content").eq(index).show().siblings().hide();  
            _this.n = index;      
        })  
    }  
      
    this.addHover = function(){  
        $(_this.obj).hover(function(){  
            clearInterval(t);     
        },function(){  
            t = setInterval(_this.autoPlay,_this.time);   
        })    
    }  
    this.autoPlay = function(){  
        _this.n = _this.n &gt;=(_this.count-1) ? 0 : ++_this.n;  
        $(_this.obj + " .menu li").eq(_this.n).trigger("mouseover");      
    }  
    this.factory = function(){  
        this.slider();  
        this.addHover();  
        t = setInterval(this.autoPlay,_this.time);    
    }  
    this.factory();  
}</pre>下面传个附件 看不懂可以下载下来先看看效果 然后稍微理解下 就ok了！其实说真的js重要&nbsp; 但是HTML结构和CSS样式同样重要 有时结构写好的话 css写好的话 js就很简单！！<p></p>
<p><a target="_blank" href="http://www.itivy.com/DownloadFile.ashx?id=634582061866272461">源代码下载</a></p>
<p>原文链接：http://tugenhua.blog.51cto.com/3912301/726649</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/11/15/jquery-cross-domain-ajax.html]]></link>
<title><![CDATA[用jquery实现ajax跨域请求]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Tue, 15 Nov 2011 12:45:34 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[业务需求：一台独立的新闻服务器（A），对外提供新闻。 客户（B）网页引入A的js，即可请求新闻。<br />
<p>
B请求新闻所产生的页面有A的js生成。</p>
<p>
A提供&lt;script type="text/javascript" src="http://newsdomain/js/news.js" &gt; &lt;/script&gt; 来让B 引入。</p>
一般的ajax无法跨域请求，jquery的 $.ajax 
也是如此。均提示访问被拒绝。这是由于浏览器对javascript的安全机制造成的。请求时 
服务器可以得到响应并生成数据，但无法跨域返回给B。查了很多资料，Jquery的jsonp可以实现跨域请求和响应。但是网上的写法各不相同，甚至不全
面，经过多番研究得以实现。我将客户端的写法和服务端的写法写出来，与各位同仁一起分享。<br />
<p>
首先js的写法。news.js中</p>
<p></p>
<pre class="brush:js;">function requestNews(page,key,from,to,sort,language){
$.getJSON("http://"+domain+"/requestNews/getNews?mehtod=splitPage&amp;page="+page+"&amp;key="+k+"&amp;from="+from+"&amp;to="+to+"&amp;sort="+sort+"&amp;language="+language+"&amp;jsonpcallback=?",null,function call(json){
alert(json.info);
});
}</pre>大家有发现这个url有些特别http://******?参数=值jsonpcallback=? 
。这种写法是jsonp的写法。jquery就是通过jsonpcallback=? 这个参数找到回调函数function call(json) 
的。所以请求中必须加jsonpcallback=?。<br />
在服务器端会接收jsonpcallback这个值。jquery会把那个？做处理，jsonpcallback=jsonp1287199309053。<br />
$.getJSON这个函数的的参数写法你可以去查一下。$.getJSON（地址，数据，回调函数）<br />
由于我的数据已经与url合并，所以我的第二个参数为null，不写也可。<br />
下面说服务器端对请求的数据如何处理和返回。重点只有两个。<br />
1，json数据格式。2，为了让回调函数可以接受返回值，其写法特被。<br />
第一json数据格式{name：value}.详细的自己去查。<br />
第二。服务端一定要接收jsonpcallback=?<br />
<pre class="brush:java;">String callBack = req.getParameter("jsonpcallback");
String  strJson = {"info":"aaaa"};
String result = callBack (strJson);// 这里很重要。</pre> 打印出来的结果就是<br />
jsonp1287199543662({"info":"aaaa"}) //这里要看清楚。<br />
<br />
重点讲完了，最后一点就是返回<br />
<pre class="brush:java;">resp.setContentType("application/json;charset=UTF-8"); //这里的格式是json
resp.setHeader("Cache-Control","no-cache");
PrintWriter out = resp.getWriter();
out.print(callBack); // 这是是print 不是write。
out.close();</pre> 这样就实现了ajax跨域访问。 很多事情做出来的时候再回想感觉特简单，当你摸索的过程中却云里雾里 也很烦恼，尤其在网上查到的各种方法都无效的时候 ，烦。 其实就这么简单。<p></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/11/9/jquery-keyboard-event.html]]></link>
<title><![CDATA[深入了解jquery键盘事件]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Wed, 09 Nov 2011 10:53:25 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>很多时候，我们需要获取用户的键盘事件，下面就一起来看看jquery是如何操作键盘事件的。</p>
<p><strong>一、首先需要知道的是：</strong> </p>
<p><strong>1</strong><strong>、keydown()</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; keydown事件会在键盘按下时触发.</p>
<p><strong>2</strong><strong>、keyup()</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件</p>
<p><strong>3</strong><strong>、keypress()</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键</p>
<p><strong>二、获得键盘上对应的ascII码：</strong></p>
<p></p>
<pre class="brush:js;">      $(document).keydown(function(event){ 
              console.log(event.keyCode); 
      });</pre><strong>$tips</strong>:&nbsp;上面例子中,event.keyCode就可以帮助我们获取到我们按下了键盘上的什么按键,他返回的是ascII码,比如说上下左右键,分别是38,40,37,39；<p></p>
<p><strong>三、实例（当按下键盘上的左右方面键时）</strong></p>
<p></p>
<pre class="brush:js;">      $(document).keydown(function(event){

          //判断当event.keyCode 为37时（即左方面键），执行函数to_left();

          //判断当event.keyCode 为39时（即右方面键），执行函数to_right();

          if(event.keyCode == 37){

             //do something;
          }else if (event.keyCode == 39){ 
             //do something;
          } 
      });</pre><p></p>
<span style="font-weight:bold;">实例研究：</span><p>比如：小说网站中常见的按左右键来实现上一篇文章和下一篇文章；按ctrl+回车实现表单提交；google reader和有道阅读中的全快捷键操作...（以此提高用户体验）</p>
<p>&nbsp;</p>
<p><strong>① 实现ctrl+Enter就是ctrl+回车提交表单：</strong></p>
<p></p>
<pre class="brush:js;">$(document).keypress(function(event) {

      if (event.ctrlKey &amp;&amp; event.which == 13)

     $("form:first").trigger("submit");

 })</pre><strong>② 监测ctrl按键：</strong><p></p>
<p></p>
<pre class="brush:js;">$(document).keydown(function(event){

       //（ctrlKey和metaKey等效：都是监测）按下ctrl返回turn，按下非ctrl键返回false；

       console.log(event.ctrlKey);

       //console.log(event.metaKey);          

})</pre><strong>③ 键盘系列操作</strong><p></p>
<p></p>
<pre class="brush:js;">$(document).keydown(function(event){  

    var e = event || window.event;     //作用？？？

    var k = e.keyCode || e.which;  //获取按键的acdII 码

    switch(k) {

       case 37:

           //…

           break;

       case 39:

           //…

           break;

    }

    return false;

})</pre><pre class="brush:js;">       //另外发现一个应用的方法：当页面转载完成的时候，第一个表单元素获得焦点，以便输入

       $("input[type=text]:first").trigger("focus");     

       //当表单没获得焦点，但用户却按下键盘的时候，自动为用户定位焦点到输入框上

       $(document).keydown(function(){

              $("input[type=text]:first").trigger("focus");

       })</pre>以上是列出了jquery键盘事件的常用方法，很多时候应该也够用了。<p></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/11/7/jquery-image-zoomer.html]]></link>
<title><![CDATA[jQuery实现页面图片等比例放大和缩小]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Mon, 07 Nov 2011 21:35:21 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>本文将利用jquery实现页面图片等比例放大和缩小。说明: 页面中经常需要将未知大小的图片展示在有限的空间里,&nbsp;如果直接指定图片的width和height值, 就有可能造成图片走样,&nbsp;这段代码就是为解决这个问题设计。</p>
<p>html代码结构:</p>
<p></p>
<pre class="brush:xhtml;">&lt;a href=""&gt;&lt;img src="images/tmp_376x470.jpg" width="300" height="300" alt=""/&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="images/tmp_409x265.jpg" width="300" height="300" alt=""/&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="images/tmp_572x367.jpg" width="300" height="300" alt=""/&gt;&lt;/a&gt;</pre>样式:<p></p>
<p></p>
<pre class="brush:css;">a{width:300px;height:300px;background:#fff;border:1px solid #666;display:inline-block} /* 这里需要指定a标签的高宽,背景和边框为可选 */  </pre>脚本(jquery可自行添加):<p></p>
<p></p>
<pre class="brush:js;">$(function () {
	var imgs = $('a&gt;img');
	imgs.each(function () {
		var img = $(this);
		var width = img.attr('width');//区域宽度
		var height = img.attr('height');//区域高度
		var showWidth = width;//最终显示宽度
		var showHeight = height;//最终显示高度
		var ratio = width / height;//宽高比
		img.load(function () {
			var imgWidth, imgHeight, imgratio;
			$('&lt;img /&gt;').attr('src', img.attr('src')).load(function () {
				imgWidth = this.width;//图片实际宽度
				imgHeight = this.height;//图片实际高度
				imgRatio = imgWidth / imgHeight;//实际宽高比
				if (ratio &gt; imgRatio) {
					showWidth = height * imgRatio;//调整宽度太小
					img.attr('width', showWidth).css('margin-left', (width - showWidth) / 2);
				} else {
					showHeight = width / imgRatio;//调高度太小
					img.attr('height', showHeight).css('margin-top', (height - showHeight) / 2);
				}
			});
		});
	});
});</pre>这样就是实现了图片的等比例放大缩小了。<p></p>
<p>原文链接：http://blog.csdn.net/yorts52/article/details/6938359</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/11/3/jquery-json.html]]></link>
<title><![CDATA[jquery json解析详解]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Thu, 03 Nov 2011 12:22:32 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p><span style="font-family:Microsoft YaHei;font-size:13px;">我们先以解析上例中的comments对象的JSON数据为例，然后再小结jQuery中解析JSON数据的方法。</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">上例中得到的JSON数据如下，是一个嵌套JSON：</span></p>
<p></p>
<pre class="brush:js;">{"comments":[{"content":"很不错嘛","id":1,"nickname":"纳尼"},{"content":"哟西哟西","id":2,"nickname":"小强"}]}</pre><p></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">获取JSON数据，在jQuery中有一个简单的方法 $.getJSON() 可以实现。</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">下面引用的是官方API对$.getJSON()的说明：</span></p>
<h4 class="name"><span style="font-family:Microsoft YaHei;font-size:13px;">jQuery.getJSON( url, [data,] [success(data, textStatus, jqXHR)] )</span></h4>
<p class="arguement"><span style="font-size:13px;"><span style="font-family:Microsoft YaHei;"><strong>url</strong>A string containing the URL to which the request is sent.</span></span></p>
<p class="arguement"><span style="font-size:13px;"><span style="font-family:Microsoft YaHei;"><strong>data</strong>A map or string that is sent to the server with the request.</span></span></p>
<p class="arguement"><span style="font-size:13px;"><span style="font-family:Microsoft YaHei;"><strong>success(data, textStatus, jqXHR)</strong>A callback function that is executed if the request succeeds.</span></span></p>
<p class="arguement"><span style="font-family:Microsoft YaHei;font-size:13px;">回调函数中接受三个参数，第一个书返回的数据，第二个是状态，第三个是jQuery的XMLHttpRequest，我们只使用到第一个参数。</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">$.each()是用来在回调函数中解析JSON数据的方法，下面是官方文档：</span></p>
<h4 class="name"><span style="font-family:Microsoft YaHei;font-size:13px;">jQuery.each( collection, callback(indexInArray, valueOfElement) )</span></h4>
<p class="arguement"><span style="font-size:13px;"><span style="font-family:Microsoft YaHei;"><strong>collection</strong>The object or array to iterate over.</span></span></p>
<p class="arguement"><span style="font-size:13px;"><span style="font-family:Microsoft YaHei;"><strong>callback(indexInArray, valueOfElement)</strong>The function that will be executed on every object.</span></span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">$.each()方法接
受两个参数，第一个是需要遍历的对象集合（JSON对象集合），第二个是用来遍历的方法，这个方法又接受两个参数，第一个是遍历的index，第二个是当
前遍历的值。哈哈，有了$.each()方法JSON的解析就迎刃而解咯。(*^__^*) 嘻嘻……</span></p>
<p></p>
<pre class="brush:js;">function loadInfo() {
    $.getJSON("loadInfo", function(data) {
        $("#info").html("");//清空info内容         $.each(data.comments, function(i, item) {
            $("#info").append(
                    "&lt;div&gt;" + item.id + "&lt;/div&gt;" + 
                    "&lt;div&gt;" + item.nickname    + "&lt;/div&gt;" +                     "&lt;div&gt;" + item.content + "&lt;/div&gt;&lt;hr/&gt;");
        });
        });
}</pre><p></p>
<p></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">正如上
面，loadinfo是请求的地址，function(data){...}就是在请求成功后的回调函数，data封装了返回的JSON对象，在下面
的$.each(data.comments,function(i,item){...})方法中data.comments直接到达JSON数据内包
含的JSON数组：</span></p>
<p></p>
<pre class="brush:js;">[{"content":"很不错嘛","id":1,"nickname":"纳尼"},{"content":"哟西哟西","id":2,"nickname":"小强"}]</pre><p></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">$.each()方法中的function就是对这个数组进行遍历，再通过操作DOM插入到合适的地方的。在遍历的过程中，我们可以很方便的访问当前遍历index(代码中的”i“)和当前遍历的值(代码中的”item“)。</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">上例的运行结果如下：</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;"><img src="/Upload/EditorImage/20111103121856_5179.jpg" alt="" border="0" /><br />
</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">如果返回的JSON数据比较复杂，则只需多些$.each()进行遍历即可，嘿嘿。例如如下JSON数据：</span></p>
<p></p>
<pre class="brush:js;">{"comments":[{"content":"很不错嘛","id":1,"nickname":"纳尼"},{"content":"哟西哟西","id":2,"nickname":"小强"}],
"content":"你是木头人，哈哈。","infomap":{"性别":"男","职业":"程序员",
"博客":"http:\/\/www.cnblogs.com\/codeplus\/"},"title":"123木头人"}</pre><p></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">js如下：</span></p>
<p></p>
<pre class="brush:js;">function loadInfo() {
    $.getJSON("loadInfo", function(data) {
        $("#title").append(data.title+"&lt;hr/&gt;");
        $("#content").append(data.content+"&lt;hr/&gt;");
        //jquery解析map数据
        $.each(data.infomap,function(key,value){
            $("#mapinfo").append(key+"----"+value+"&lt;br/&gt;&lt;hr/&gt;");
        });
        //解析数组
        $.each(data.comments, function(i, item) {
            $("#info").append(
                    "&lt;div&gt;" + item.id + "&lt;/div&gt;" + 
                    "&lt;div&gt;" + item.nickname    + "&lt;/div&gt;" +
                    "&lt;div&gt;" + item.content + "&lt;/div&gt;&lt;hr/&gt;");
        });
        });
}</pre><p></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">值得注意的是，$.each()遍历Map的时候，function()中的参数是key和value，十分方便。</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;">上例的运行效果：</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;"><img src="/Upload/EditorImage/20111103122037_9198.jpg" alt="" border="0" /><br />
</span></p>
<p><span style="font-family:Microsoft YaHei;font-size:13px;"><a target="_blank" href="http://blog.csdn.net/jpr1990/article/details/6931027">原文链接</a> </span></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/10/13/the-12-useful-jquery-skills.html]]></link>
<title><![CDATA[12个非常有用的jQuery技巧]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Thu, 13 Oct 2011 23:39:09 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<div id="cnblogs_post_body"><p>由于jQuery对象本身是一个集合。所以如果jQuery对象要转换为dom对象则必须取出其中的某一项，一般可通过索引取出。</p>
<p><strong>1、关于页面元素的引用</strong></p>
<p>通过jQuery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法，且返回的对象为jQuery对象（集合对象），不能直接调用dom定义的方法。</p>
<p><strong>2、jQuery对象与dom对象的转换</strong></p>
<p>只有jQuery对象才能使用jQuery定义的方法。注意dom对象和jQuery对象是有区别的，调用方法时要注意操作的是dom对象还是jQuery对象。普通的dom对象一般可以通过$()转换成jQuery对象。<br />
如：$(document.getElementById(”msg”))则为jQuery对象，可以使用jQuery的方法。<br />
由
于jQuery对象本身是一个集合。所以如果jQuery对象要转换为dom对象则必须取出其中的某一项，一般可通过索引取出。如：$(”#msg”)
[0]，$(”div”).eq(1)[0]，$(”div”).get()[1]，$(”td”)[5]这些都是dom对象，可以使用dom中的方法，
但不能再使用jQuery的方法。</p>
<p>以下几种写法都是正确的：</p>
<ol class="dp-c"><li class="alt"><span><span>$("#msg”).html(); &nbsp;</span></span></li>
<li><span>$("#msg”)[0].innerHTML; &nbsp;</span></li>
<li class="alt"><span>$("#msg”).eq(0)[0].innerHTML; &nbsp;</span></li>
<li><span>$("#msg”).get(0).innerHTML;&nbsp;</span></li>
</ol>
<p><strong>3、如何获取jQuery集合的某一项</strong></p>
<p>对于获取的元素集合，获取其中的某一项（通过索引指定）可以使用eq或get(n)方法或者索引号获取，要注意，eq返回的是jQuery对象，而
get(n)和索引返回的是dom元素对象。对于jQuery对象只能使用jQuery的方法，而dom对象只能使用dom的方法，如要获取第三
个&lt;div&gt;元素的内容。有如下两种方法：</p>
<ol class="dp-c"><li class="alt"><span><span>$("div”).eq(2).html();&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//调用jQuery对象的方法 </span><span>&nbsp;</span></span></li>
<li><span>$("div”).get(2).innerHTML;&nbsp;</span><span class="comment">//调用dom的方法属性</span><span>&nbsp;</span></li>
</ol>
<p><strong>4、同一函数实现set和get</strong></p>
<p>jQuery中的很多方法都是如此，主要包括如下几个：</p>
<ol class="dp-c"><li class="alt"><span><span>$(</span><span class="string">"#msg"</span><span>).html();&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//返回id为msg的元素节点的html内容。 </span><span>&nbsp;</span></span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).html(</span><span class="string">"&lt;b&gt;new&nbsp;content&lt;/b&gt;"</span><span>); &nbsp;</span></li>
<li class="alt"><span class="comment">//将“&lt;b&gt;new&nbsp;content&lt;/b&gt;"&nbsp;作为html串写入id为msg的元素节点内容中,页面显示粗体的new&nbsp;content </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).text();&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//返回id为msg的元素节点的文本内容。 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).text(</span><span class="string">"&lt;b&gt;new&nbsp;content&lt;/b&gt;"</span><span>); &nbsp;</span></li>
<li><span class="comment">//将“&lt;b&gt;new&nbsp;content&lt;/b&gt;"&nbsp;作为普通文本串写入id为msg的元素节点内容中,页面显示&lt;b&gt;new&nbsp;content&lt;/b&gt; </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).height();&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//返回id为msg的元素的高度 </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).height("300″);&nbsp;</span><span class="comment">//将id为msg的元素的高度设为300 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).width();&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//返回id为msg的元素的宽度 </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).width("300″);&nbsp;</span><span class="comment">//将id为msg的元素的宽度设为300 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"input"</span><span>).val(");&nbsp;</span><span class="comment">//返回表单输入框的value值 </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"input"</span><span>).val(</span><span class="string">"test"</span><span>);&nbsp;</span><span class="comment">//将表单输入框的value值设为test </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).click();&nbsp;</span><span class="comment">//触发id为msg的元素的单击事件 </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).click(fn);&nbsp;</span><span class="comment">//为id为msg的元素单击事件添加函数</span><span>&nbsp;</span></li>
</ol>
<p>同样blur,focus,select,submit事件都可以有着两种调用方法</p>
<p><strong>5、集合处理功能</strong></p>
<p>对于jQuery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理，jQuery已经为我们提供的很方便的方法进行集合的处理。包括两种形式：</p>
<ol class="dp-c"><li class="alt"><span><span>$("p”).each(</span><span class="keyword">function</span><span>(i){</span><span class="keyword">this</span><span>.style.color=[</span><span class="string">'#f00'</span><span>,</span><span class="string">'#0f0'</span><span>,</span><span class="string">'#00f'</span><span>][&nbsp;i&nbsp;]}) &nbsp;</span></span></li>
<li><span class="comment">//为索引分别为0，1，2的p元素分别设定不同的字体颜色。 </span><span>&nbsp;</span></li>
<li class="alt"><span>$("tr”).each(</span><span class="keyword">function</span><span>(i){</span><span class="keyword">this</span><span>.style.backgroundColor=[</span><span class="string">'#ccc'</span><span>,</span><span class="string">'#fff'</span><span>][i%2]}) &nbsp;</span></li>
<li><span class="comment">//实现表格的隔行换色效果 </span><span>&nbsp;</span></li>
<li class="alt"><span>$("p”).click(</span><span class="keyword">function</span><span>(){alert($(</span><span class="keyword">this</span><span>).html())}) &nbsp;</span></li>
<li><span class="comment">//为每个p元素增加了click事件，单击某个p元素则弹出其内容</span><span>&nbsp;</span></li>
</ol>
<p><strong>6、扩展我们需要的功能</strong></p>
<ol class="dp-c"><li class="alt"><span><span>$.extend({ &nbsp;</span></span></li>
<li><span>min:&nbsp;</span><span class="keyword">function</span><span>(a,&nbsp;b){</span><span class="keyword">return</span><span>&nbsp;a&nbsp;&lt;&nbsp;b?a:b;&nbsp;}, &nbsp;</span></li>
<li class="alt"><span>max:&nbsp;</span><span class="keyword">function</span><span>(a,&nbsp;b){</span><span class="keyword">return</span><span>&nbsp;a&nbsp;&gt;&nbsp;b?a:b;&nbsp;} &nbsp;</span></li>
<li><span>});&nbsp;</span><span class="comment">//为jQuery扩展了min,max两个方法</span><span>&nbsp;</span></li>
</ol>
<p>使用扩展的方法（通过“$.方法名”调用）：</p>
<ol class="dp-c"><li class="alt"><span><span>alert(”a=10,b=20,max=”+$.max(10,20)+”,min=”+$.min(10,20));&nbsp;</span></span></li>
</ol>
<p><strong>7、支持方法的连写</strong></p>
<p>所谓连写，即可以对一个jQuery对象连续调用各种不同的方法。例如：</p>
<ol class="dp-c"><li class="alt"><span><span>$("p”).click(</span><span class="keyword">function</span><span>(){alert($(</span><span class="keyword">this</span><span>).html())}) &nbsp;</span></span></li>
<li><span>.mouseover(</span><span class="keyword">function</span><span>(){alert(’mouse&nbsp;over&nbsp;event’)}) &nbsp;</span></li>
<li class="alt"><span>.each(</span><span class="keyword">function</span><span>(i){</span><span class="keyword">this</span><span>.style.color=[</span><span class="string">'#f00'</span><span>,</span><span class="string">'#0f0'</span><span>,</span><span class="string">'#00f'</span><span>][&nbsp;i&nbsp;]});&nbsp;</span></li>
</ol>
<p><strong>8、操作元素的样式</strong></p>
<p>主要包括以下几种方式：</p>
<ol class="dp-c"><li class="alt"><span><span>$(</span><span class="string">"#msg"</span><span>).css(</span><span class="string">"background"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//返回元素的背景颜色 </span><span>&nbsp;</span></span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).css(</span><span class="string">"background"</span><span>,</span><span class="string">"#ccc"</span><span>)&nbsp;</span><span class="comment">//设定元素背景为灰色 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).height(300);&nbsp;$(</span><span class="string">"#msg"</span><span>).width("200″);&nbsp;</span><span class="comment">//设定宽高 </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).css({&nbsp;color:&nbsp;“red</span><span class="string">",&nbsp;background:&nbsp;“blue"</span><span>&nbsp;});</span><span class="comment">//以名值对的形式设定样式 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).addClass(</span><span class="string">"select"</span><span>);&nbsp;</span><span class="comment">//为元素增加名称为select的class </span><span>&nbsp;</span></li>
<li><span>$(</span><span class="string">"#msg"</span><span>).removeClass(</span><span class="string">"select"</span><span>);&nbsp;</span><span class="comment">//删除元素名称为select的class </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"#msg"</span><span>).toggleClass(</span><span class="string">"select"</span><span>);&nbsp;</span><span class="comment">//如果存在（不存在）就删除（添加）名称为select的class</span><span>&nbsp;</span></li>
</ol>
<p><strong>9、完善的事件处理功能</strong></p>
<p>jQuery已经为我们提供了各种事件处理方法，我们无需在html元素上直接写事件，而可以直接为通过jQuery获取的对象添加事件。如：</p>
<ol class="dp-c"><li class="alt"><span><span>$(”#msg”).click(</span><span class="keyword">function</span><span>(){alert(”good”)})&nbsp;</span><span class="comment">//为元素添加了单击事件 </span><span>&nbsp;</span></span></li>
<li><span>$(“p”).click(</span><span class="keyword">function</span><span>(i){</span><span class="keyword">this</span><span>.style.color=[</span><span class="string">'#f00'</span><span>,</span><span class="string">'#0f0'</span><span>,</span><span class="string">'#00f'</span><span>][&nbsp;i&nbsp;]}) &nbsp;</span></li>
<li class="alt"><span class="comment">//为三个不同的p元素单击事件分别设定不同的处理</span><span>&nbsp;</span></li>
</ol>
<p>jQuery中几个自定义的事件：</p>
<p><span style="color:#800000;">（1）hover(fn1,fn2)：一个模仿悬停事件（鼠标移动到一个对象上面及移出这个对象）的方法。当鼠标移动到一个匹配的元素上面时，会触发指定的第一个函数。当鼠标移出这个元素时，会触发指定的第二个函数。</span></p>
<ol class="dp-c"><li class="alt"><span><span class="comment">//当鼠标放在表格的某行上时将class置为over，离开时置为out。 </span><span>&nbsp;</span></span></li>
<li><span>$("tr”).hover(</span><span class="keyword">function</span><span>(){ &nbsp;</span></li>
<li class="alt"><span>$(</span><span class="keyword">this</span><span>).addClass(”over”); &nbsp;</span></li>
<li><span>,</span><span class="keyword">function</span><span>(){ &nbsp;</span></li>
<li class="alt"><span>$(</span><span class="keyword">this</span><span>).addClass(”out”); &nbsp;</span></li>
<li><span>});&nbsp;</span></li>
</ol>
<p><span style="color:#800000;">（2）ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。</span></p>
<ol class="dp-c"><li class="alt"><span><span>$(document).ready(</span><span class="keyword">function</span><span>(){alert(”Load&nbsp;Success”)}) &nbsp;</span></span></li>
<li><span class="comment">//页面加载完毕提示“Load&nbsp;Success”,相当于onload事件。与$(fn)等价</span><span>&nbsp;</span></li>
</ol>
<p><span style="color:#800000;">（3）toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素，则触发指定的第一个函数，当再次点击同一元素时，则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。</span></p>
<ol class="dp-c"><li class="alt"><span><span class="comment">//每次点击时轮换添加和删除名为selected的class。 </span><span>&nbsp;</span></span></li>
<li><span>$("p”).toggle(</span><span class="keyword">function</span><span>(){ &nbsp;</span></li>
<li class="alt"><span>$(</span><span class="keyword">this</span><span>).addClass(”selected”); &nbsp;</span></li>
<li><span>},</span><span class="keyword">function</span><span>(){ &nbsp;</span></li>
<li class="alt"><span>$(</span><span class="keyword">this</span><span>).removeClass(”selected”); &nbsp;</span></li>
<li><span>});&nbsp;</span></li>
</ol>
<p><span style="color:#800000;">（4）trigger(eventtype): 在每一个匹配的元素上触发某类事件。例如：</span></p>
<ol class="dp-c"><li class="alt"><span><span>$("p”).trigger(”click”);&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//触发所有p元素的click事件</span><span>&nbsp;</span></span></li>
</ol>
<p>&nbsp;</p>
<p><span style="color:#800000;">（5）bind(eventtype,fn)，unbind(eventtype): 事件的绑定与反绑定</span></p>
<p>从每一个匹配的元素中（添加）删除绑定的事件。例如：</p>
<ol class="dp-c"><li class="alt"><span><span>$(</span><span class="string">"p"</span><span>).bind(</span><span class="string">"click"</span><span>,&nbsp;</span><span class="keyword">function</span><span>(){alert($(</span><span class="keyword">this</span><span>).text());});&nbsp;</span><span class="comment">//为每个p元素添加单击事件 </span><span>&nbsp;</span></span></li>
<li><span>$(</span><span class="string">"p"</span><span>).unbind();&nbsp;</span><span class="comment">//删除所有p元素上的所有事件 </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"p"</span><span>).unbind(</span><span class="string">"click"</span><span>)&nbsp;</span><span class="comment">//删除所有p元素上的单击事件</span><span>&nbsp;</span></li>
</ol>
<p><strong>10、几个实用特效功能</strong></p>
<p>其中toggle()和slidetoggle()方法提供了状态切换功能。如toggle()方法包括了hide()和show()方法。slideToggle()方法包括了slideDown()和slideUp方法。</p>
<p><strong>11、几个有用的jQuery方法</strong></p>
<p>$.browser.浏览器类型：检测浏览器类型。有效参数：safari, opera, msie, mozilla。如检测是否ie：$.browser.isie，是ie浏览器则返回true。<br />
$.each(obj, fn)：通用的迭代函数。可用于近似地迭代对象和数组（代替循环）。如</p>
<ol class="dp-c"><li class="alt"><span><span>$.each(&nbsp;[0,1,2],&nbsp;</span><span class="keyword">function</span><span>(i,&nbsp;n){&nbsp;alert(&nbsp;</span><span class="string">"Item&nbsp;#"</span><span>&nbsp;+&nbsp;i&nbsp;+&nbsp;</span><span class="string">":&nbsp;"</span><span>&nbsp;+&nbsp;n&nbsp;);&nbsp;});&nbsp;&nbsp;</span></span></li>
</ol>
<p>等同于：</p>
<ol class="dp-c"><li class="alt"><span><span class="keyword">var</span><span>&nbsp;tempArr=[0,1,2]; &nbsp;</span></span></li>
<li><span class="keyword">for</span><span>(</span><span class="keyword">var</span><span>&nbsp;i=0;i&lt;tempArr.length;i++){ &nbsp;</span></li>
<li class="alt"><span>alert(</span><span class="string">"Item&nbsp;#"</span><span>+i+</span><span class="string">":&nbsp;"</span><span>+tempArr[&nbsp;i&nbsp;]); &nbsp;</span></li>
<li><span>}&nbsp;</span></li>
</ol>
<p>也可以处理json数据，如</p>
<ol class="dp-c"><li class="alt"><span><span>$.each(&nbsp;{&nbsp;name:&nbsp;</span><span class="string">"John"</span><span>,&nbsp;lang:&nbsp;</span><span class="string">"JS"</span><span>&nbsp;},&nbsp;</span><span class="keyword">function</span><span>(i,&nbsp;n){&nbsp;alert(&nbsp;</span><span class="string">"Name:&nbsp;"</span><span>&nbsp;+&nbsp;i&nbsp;+&nbsp;</span><span class="string">",&nbsp;Value:&nbsp;"</span><span>&nbsp;+&nbsp;n&nbsp;);&nbsp;});&nbsp;</span></span></li>
</ol>
<p>结果为：</p>
<ol class="dp-c"><li class="alt"><span><span>Name:name,&nbsp;Value:John &nbsp;</span></span></li>
<li><span>Name:lang,&nbsp;Value:JS &nbsp;</span></li>
<li class="alt"><span>$.extend(target,prop1,propN)：用一个或多个其他对象来扩展一个对象，返回这个被扩展的对象。这是jQuery实现的继承方式。如： &nbsp;</span></li>
<li><span>$.extend(settings,&nbsp;options); &nbsp;</span></li>
<li class="alt"><span class="comment">//合并settings和options，并将合并结果返回settings中，相当于options继承setting并将继承结果保存在setting中。 </span><span>&nbsp;</span></li>
<li><span class="keyword">var</span><span>&nbsp;settings&nbsp;=&nbsp;$.extend({},&nbsp;defaults,&nbsp;options); &nbsp;</span></li>
<li class="alt"><span class="comment">//合并defaults和options，并将合并结果返回到setting中而不覆盖default内容。</span><span>&nbsp;</span></li>
</ol>
<p>可以有多个参数（合并多项并返回）$.map(array, fn)：数组映射。把一个数组中的项目(处理转换后)保存到到另一个新数组中，并返回生成的新数组。如：</p>
<ol class="dp-c"><li class="alt"><span><span class="keyword">var</span><span>&nbsp;tempArr=$.map(&nbsp;[0,1,2],&nbsp;</span><span class="keyword">function</span><span>(i){&nbsp;</span><span class="keyword">return</span><span>&nbsp;i&nbsp;+&nbsp;4;&nbsp;}); &nbsp;</span></span></li>
<li><span>tempArr内容为：[4,5,6] &nbsp;</span></li>
<li class="alt"><span class="keyword">var</span><span>&nbsp;tempArr=$.map(&nbsp;[0,1,2],&nbsp;</span><span class="keyword">function</span><span>(i){&nbsp;</span><span class="keyword">return</span><span>&nbsp;i&nbsp;&gt;&nbsp;0&nbsp;?&nbsp;i&nbsp;+&nbsp;1&nbsp;:&nbsp;</span><span class="keyword">null</span><span>;&nbsp;}); &nbsp;</span></li>
<li><span>tempArr内容为：[2,3] &nbsp;</span></li>
</ol>
<p><span>$.merge(arr1,arr2):合并两个数组并删除其中重复的项目。&nbsp;</span>如：</p>
<ol class="dp-c"><li class="alt"><span><span>$.merge(&nbsp;[0,1,2],&nbsp;[2,3,4]&nbsp;)&nbsp;</span><span class="comment">//返回[0,1,2,3,4]</span><span>&nbsp;</span></span></li>
</ol>
<p>$.trim(str)：删除字符串两端的空白字符。如：</p>
<ol class="dp-c"><li class="alt"><span><span>$.trim(</span><span class="string">"&nbsp;&nbsp;&nbsp;hello,&nbsp;how&nbsp;are&nbsp;you?&nbsp;"</span><span>);&nbsp;</span><span class="comment">//返回"hello,how&nbsp;are&nbsp;you?&nbsp;"</span><span>&nbsp;</span></span></li>
</ol>
<p><strong>12、解决自定义方法或其他类库与jQuery的冲突</strong></p>
<p>很多时候我们自己定义了$(id)方法来获取一个元素，或者其他的一些js类库如prototype也都定义了$方法，如果同时把这些内容放在一起就会引起变量方法定义冲突，jQuery对此专门提供了方法用于解决此问题。<br />
使
用jQuery中的jQuery.noConflict();方法即可把变量$的控制权让渡给第一个实现它的那个库或之前自定义的$方法。之后应用
jQuery的时候只要将所有的$换成jQuery即可，如原来引用对象方法$("#msg")改为jQuery("#msg")。如：</p>
<ol class="dp-c"><li class="alt"><span><span>jQuery.noConflict(); &nbsp;</span></span></li>
<li><span class="comment">//&nbsp;开始使用jQuery </span><span>&nbsp;</span></li>
<li class="alt"><span>jQuery(</span><span class="string">"div&nbsp;p"</span><span>).hide(); &nbsp;</span></li>
<li><span class="comment">//&nbsp;使用其他库的&nbsp;$() </span><span>&nbsp;</span></li>
<li class="alt"><span>$(</span><span class="string">"content"</span><span>).style.display&nbsp;=&nbsp;</span><span class="string">'none'</span><span>; <br />
</span></li>
</ol>
</div>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/10/9/how-to-load-jquery-file-dynamically.html]]></link>
<title><![CDATA[如何动态地加载Jquery库文件]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Sun, 09 Oct 2011 07:22:16 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>有时候，我们可能不会在网页中&lt;script src="jquery.min.js" 来加载 Jquery 库，可能在用户点击某个按钮后，才去加载 Jquery 库。好处不用我说，节省带宽，提高访问速度，因为用户可能不会点击这个按钮，也就不需要 Jquery 。那么如何动态加载 Jquery 库呢？一般可以用 Document.write 来打印出，也可以用 Ajax ，也可以用我下面的这种方式：</p>
<p><pre class="brush:xhtml;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;  
&lt;html xmlns="http://www.w3.org/1999/xhtml" &gt;  
&lt;head&gt;  
    &lt;title&gt;动态加载Jquery库，不用创建Ajax请求。在 a 的 href 属性中写一段或多段代码&lt;/title&gt;  
    &lt;style type="text/css"&gt;  
        #message { margin: 20px 10px; color:Green; }  
    &lt;/style&gt;  
    &lt;script language="javascript" type="text/javascript"&gt;  
        function AjaxLoadJquerylibrary()  
        {  
            var d = document, s = d.getElementById('firebug-lite');  
            if (s != null)  
                return;  
            s = d.createElement('script');  
            s.type = 'text/javascript';  
            s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js';  
            d.body.appendChild(s);  
            document.getElementById("content").style.display = "block";  
        }  
    &lt;/script&gt;  
&lt;/head&gt;  
&lt;body&gt;  
&lt;div&gt;  
    &lt;input type="button" value="动态导入Jquery" onclick="AjaxLoadJquerylibrary();" /&gt;&lt;br /&gt;  
&lt;/div&gt;  
&lt;div id="message"&gt;  
       
&lt;/div&gt;    
 &lt;div id="content"&gt;  
    请输入您的名字：&lt;input type="text" value="" id="txtUserName" /&gt;&lt;br /&gt;  
    &lt;a href="javascript:(function(){ var username = $('#txtUserName').val(); alert(username); })();void(0);"&gt;Jquery获取名字&lt;/a&gt;  
 &lt;/div&gt;  
&lt;/body&gt;  
&lt;/html&gt;</pre>是不是很简单呢，呵呵。</p>
<p><a target="_blank" href="http://blog.csdn.net/wmlunge/article/details/6853242">原文链接</a></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/9/18/try-to-extend-jquery-interface.html]]></link>
<title><![CDATA[试试自己定义jQuery扩展接口]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Sun, 18 Sep 2011 09:58:41 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>作为一个优秀的JS框架，jquery除了拥有丰富的客户端处理功能、动画功能外，还提供了很多自定义扩展接口，方便我们jquery开发者更灵活地扩展jquery接口，那么本文就来讲讲如何自定义jquery扩展接口，希望能给各位jquery开发者带来帮助。</p>
<p><pre class="brush:js;">$.extend({  
      max: function(a, b) {  
          return a &gt; b ? a : b;  
      },  
      min: function(a, b) {  
          return a &gt; b ? b : a;  
      },  
      avg: function(a, b) {  
          return a / b;  
      }  
});  </pre>该示例用以在jQuery中增加新函数，该函数是静态函数。调用如下：</p>
<p><pre class="brush:js;">jQuery.min(2,3); // =&gt; 2  
jQuery.max(4,5); // =&gt; 5 </pre>如果针对组件的功能扩展函数，同样也是很简单。比如，你想要扩展TextBox的功能，使到它在获取焦点时，高亮显示；失去焦点时，则取消高亮。当然，高亮的效果可以使用CSS来实现，因此，你可以用一个颜色的名称作为参数进行调用。代码如下：</p>
<p><pre class="brush:js;">$.fn.hightlight = function(colorName) {  
    this.mouseover(function() {  
        $(this).css('background-color', colorName);   //this对是对组件自身的引用  
    });  
    this.mouseout(function() {  
        $(this).css('background-color', '');  
    });  
}</pre>调用如下：</p>
<p><pre class="brush:js;">$(function() {  
    $('#test').hightlight('red');  
});</pre><strong>扩展jQuery的Json技巧</strong></p>
<p>下面我们将分析在jQuery基础上扩展了其处理Json字符串能力，伟大的jQuery将会更伟大用jQuery写JavaScript非常高
效，jQuery对Ajax的封装也非常到位；使用jQuery一段时间后发现，jQuery在处理Json字符串方面功能不是很强，至少比
prototype.js差远了。</p>
<p>以前用习惯了扩展Jquery的Json，在进行Ajax开发时，处理json数据非常方便；而在jQuery中，只提供了一个简单的
jQuery.getJSON()方法，并未提供jQuery本身对json数据的转换处理，将json字符串转换为Javascript数据对象还比较
容易利用eval()函数即可，但要将Javascript的数据类型转换成json字符串就比较难了；刚开始不得同时使用prototype.js和
jQuery。扩展Jquery的Json代码：</p>
<p><pre class="brush:js;">//扩展jQuery对json字符串的转换    
jQuery.extend({     
 /** * @see 将json字符串转换为对象   
     * @param json字符串   
     * @return 返回object,array,string等对象 */      
 evalJSON: function(strJson)   
{      return eval("(" + strJson + ")");      
}    
}); </pre><pre class="brush:js;">jQuery.extend({      
/** * @see 将javascript数据类型转换为json字符串   
* @param 待转换对象,支持  
object,  
array,string,function,number,boolean,regexp   
* @return 返回json字符串 */      
toJSON: function(object) {        
var type = typeof object;        
if ('object' == type) {          
if (Array == object.constructor) type = 'array';          
else if (RegExp == object.constructor)   
type = 'regexp';          
else type = 'object';        
}        
switch (type) {        
case 'undefined':        
case 'unknown':          
return;          
break;        
case 'function':        
case 'boolean':        
case 'regexp':          
return object.toString();          
break;   
case 'number':          
return isFinite(object) ?   
object.toString() : 'null';          
break;        
case 'string':          
return '"' + object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g, function()   
{            
var a = arguments[0];           
return (a == '\n') ? '\\n': (a == '\r') ? '\\r': (a == '\t') ? '\\t': ""          
}) + '"';          
break;        
case 'object':          
if (object === null) return 'null';          
var results = [];          
for (var property in object) {            
var value = jQuery.toJSON(object[property]);            
if (value !== undefined) results.push(jQuery.toJSON(property) + ':' + value);          
}          
return '{' + results.join(',') + '}';          
break;        
case 'array':          
var results = [];          
for (var i = 0; i &lt; object.length; i++) {            
var value = jQuery.toJSON(object[i]);            
if (value !== undefined) results.push(value);         
}          
return '[' + results.join(',') + ']';          
break;        
}      
}    
});  
示例：    
var obj = {      
name: "sean",      
friend: ["fans", "bruce", "wawa"],      
action: function() {      alert("gogogog")      
},      
boy: true,    age: 26,      
reg: /\b([a-z]+) \1\b/gi,      
child: {      name: "none",      age: -1    }  };   
 var json = $.toJSON(obj);    
var objx = $.evalJSON(json); </pre>好了，本文到此结束，相信各位应该能了解如何自定义jquery扩展接口了，谢谢阅读！</p>
<p></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/8/26/share-a-demo-of-jquery-scroll.html]]></link>
<title><![CDATA[分享一个JQuery写的点击上下滚动的小例子]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Fri, 26 Aug 2011 06:34:53 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>功能需求：</p>
<p>1、滚动框内显示10条记录；<br />
2、有向上和向下滚动按钮，每次点击按钮向上或向下滚动记录条数，不自动滚动；<br />
3、记录条数不循环滚动，滚动到起点或终点则停止滚动。</p>
<p>下面介绍一个简单实现方法：</p>
<p>1、外层容器（div） overflow: hidden，内层列表（ul）</p>
<p>2、按钮点击事件触发一个修改列表的函数</p>
<p>3、应用animate实现动画效果</p>
<p>具体不再啰嗦，直接上代码</p>
<p>CSS设置<br />
<pre class="brush:css;">&lt;style type="text/css"&gt;
    ul, li
    {
        margin: 0;
        padding: 0;
    }
    #scrollDiv
    {
        width: 300px;
        height: 250px;
        min-height: 25px;
        line-height: 25px;
        border: #ccc 1px solid;
        overflow: hidden;
    }
    #scrollDiv li
    {
        height: 25px;
        padding-left: 10px;
    }
&lt;/style&gt;</pre>JQuery 代码<br />
<pre class="brush:js;">&lt;script type="text/javascript"&gt;
        (function ($) {
            $.fn.extend({
                Scroll: function (opt, callback) {
                    if (!opt) var opt = {};
                    var _btnUp = $("#" + opt.up); //Shawphy:向上按钮      
                    var _btnDown = $("#" + opt.down); //Shawphy:向下按钮
                    var _this = this.eq(0).find("ul:first");
                    var lineH = _this.find("li:first").height(); //获取行高     
                    var line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10); //每次滚动的行数，默认为一屏，即父容器高度
                    var speed = opt.speed ? parseInt(opt.speed, 10) : 600; //卷动速度，数值越大，速度越慢（毫秒） 
                    var m = line;  //用于计算的变量
                    var count = _this.find("li").length; //总共的&lt;li&gt;元素的个数
                    var upHeight = line * lineH;
                    function scrollUp() {
                        if (!_this.is(":animated")) {  //判断元素是否正处于动画，如果不处于动画状态，则追加动画。
                            if (m &lt; count) {  //判断 m 是否小于总的个数
                                m += line;
                                _this.animate({ marginTop: "-=" + upHeight + "px" }, speed);
                            }
                        }
                    }
                    function scrollDown() {
                        if (!_this.is(":animated")) {
                            if (m &gt; line) { //判断m 是否大于一屏个数
                                m -= line;
                                _this.animate({ marginTop: "+=" + upHeight + "px" }, speed);
                            }
                        }
                    }
                    _btnUp.bind("click", scrollUp);
                    _btnDown.bind("click", scrollDown);
                }
            });
        })(jQuery);
      $(function () {
            $("#scrollDiv").Scroll({ line: 10, speed: 500,up: "btn1", down: "btn2" });
        });         
   &lt;/script&gt;</pre>可以设置$("#scrollDiv").Scroll({ line: 10, speed: 500,up: "btn1", down: "btn2" });对滚动按钮，滚动行数，滚动速度进行设置。</p>
<p>Html Body 内容<br />
<pre class="brush:xhtml;">&lt;body&gt;
    &lt;p style="font-family: 微软雅黑; font-weight: bold;"&gt;
        信息滚动栏DEMO：&lt;/p&gt;
    &lt;div id="scrollDiv"&gt;
        &lt;ul&gt;
            &lt;li&gt;这是滚动信息的第1行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第2行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第3行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第4行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第5行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第6行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第7行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第8行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第9行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第10行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第11行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第12行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第13行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第14行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第15行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第16行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第17行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第18行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第19行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第20行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第21行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第22行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第23行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第24行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第25行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第26行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第27行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第28行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第29行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第30行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第31行&lt;/li&gt;
            &lt;li&gt;这是滚动信息的第32行&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;button id="btn1"&gt;
        上滚&lt;/button&gt;
    &lt;button id="btn2"&gt;
        下滚&lt;/button&gt;
&lt;/body&gt;</pre><a target="_blank" href="http://www.cnblogs.com/yunduan/archive/2011/08/25/2153628.html">原文链接</a></p>
<p></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/8/26/use-jquery-to-make-a-dynamic-and-pretty-progressbar.html]]></link>
<title><![CDATA[jquery打造多彩动态投票显示进度条]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Fri, 26 Aug 2011 06:24:18 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>下面是来自博客园的一篇文章，<a target="_blank" href="http://www.cnblogs.com/zengxiangzhan/archive/2011/08/24/2151657.html">原文链接</a>，主要是用jquery实现了一款多彩动态投票显示进度条，效果还可以，就转载了过来，下面先一起看看这些投票进度条的效果图：</p>
<p><img src="/Upload/EditorImage/20110826061907_3428.png" alt="" border="0" /></p>
<p><img src="/Upload/EditorImage/20110826061928_3408.png" alt="" border="0" /></p>
<p><img src="/Upload/EditorImage/20110826061956_2498.png" alt="" border="0" /></p>
<p>HTML代码如下：<br />
<pre class="brush:xhtml;">&lt;ul class="vote-box-list clearfix" id="appVoteBox"&gt;
  &lt;li class="vl-item" id="voteItem0" &gt;
    &lt;div class="vote-item-wrap"&gt;
      &lt;h4&gt;A：&lt;/h4&gt;
      &lt;p class="litem"&gt;&lt;em class=vleft&gt;&lt;/em&gt;&lt;span&gt;&lt;/span&gt;&lt;em class=vright&gt;&lt;/em&gt;
      
      &lt;/p&gt;&lt;span class=vnum&gt;79（2%）&lt;/span&gt;
     
    &lt;/div&gt;
  &lt;li class="vl-item" id="voteItem1" &gt;
    &lt;div class="vote-item-wrap"&gt;
      &lt;h4&gt;B：&lt;/h4&gt;
      &lt;p class="litem"&gt;&lt;em class=vleft&gt;&lt;/em&gt;&lt;span&gt;&lt;/span&gt;&lt;em class=vright&gt;&lt;/em&gt;&lt;/p&gt;
      &lt;span class=vnum&gt;1986（61%）&lt;/span&gt;
      
    &lt;/div&gt;
  &lt;li class="vl-item" id="voteItem2"&gt;
    &lt;div class="vote-item-wrap"&gt;
      &lt;h4&gt;C：&lt;/h4&gt;
      &lt;p class="litem"&gt;&lt;em class=vleft&gt;&lt;/em&gt;&lt;span&gt;&lt;/span&gt;&lt;em class=vright&gt;&lt;/em&gt;&lt;/p&gt;
      &lt;span class=vnum&gt;1153（36%）&lt;/span&gt;
      
    &lt;/div&gt;
  &lt;li class="vl-item" id="voteItem3" &gt;
    &lt;div class="vote-item-wrap"&gt;
      &lt;h4&gt;D：&lt;/h4&gt;
      &lt;p class="litem"&gt;&lt;em class=vleft&gt;&lt;/em&gt;&lt;span&gt;&lt;/span&gt;&lt;em class=vright&gt;&lt;/em&gt;&lt;/p&gt;
      &lt;span class=vnum&gt;415（13%）&lt;/span&gt;
      
    &lt;/div&gt;
  &lt;li class="vl-item" id="voteItem4" &gt;
    &lt;div class="vote-item-wrap"&gt;
      &lt;h4&gt;5：&lt;/h4&gt;
      &lt;p class="litem"&gt;&lt;em class=vleft&gt;&lt;/em&gt;&lt;span&gt;&lt;/span&gt;&lt;em class=vright&gt;&lt;/em&gt;&lt;/p&gt;
      &lt;span class=vnum&gt;89（3%）&lt;/span&gt;
      
    &lt;/div&gt;
&lt;/ul&gt;</pre>jquery代码如下：<br />
<pre class="brush:js;">var Vote = {};

Vote.ListShow = (function() {
    var b, c, g, j;
    function a(k) {
        b = k.id;       
        g = k.percent;
        j = k.width;
        styleData = h();
        bindItems = d()
    }
    function d() {
        var o = [];
        m = $(".vote-item-wrap");
        for (var n = 0, k = m.length; n &lt; k; n++) {
            o.push(m[n].children[1]);
        }
        
        return o
    }
    function h() {
        var o = [];
        var n = ["#5dbc5b", "#6c81b6", "#9eb5f0", "#a5cbd6", "#aee7f8", "#c2f263", "#d843b3", "#d8e929", "#e58652", "#e7ab6d", "#ee335f", "#fbe096", "#ffc535"];
        var q = n.slice();
        for (var p = 0, l = g.length; p &lt; l; p++) {
            var k = Math.floor(Math.random() * q.length);
            o.push(q[k]);
            q.splice(k, 1);
            if (q.length == 0) {
                q = n.slice()
            }
        }
        return o
    }
    function f(l, k) {
        
        $(l.children[0]).css("background-color", k.color);
        $(l.children[1]).css({'background-color': k.color,'width': '0px'});
        $(l.children[2]).css("background-color", k.color);
    
    
    }
    function i() {
        var n = [];
        var l = [];
        for (var m = 0, k = g.length; m &lt; k; m++) {
            f(bindItems[m], {color: styleData[m]});
            n.push(bindItems[m].children[1]);
            l.push(Math.round(g[m] * j))
        }
        e(n, 0, l, c)
    }
    function e(p, o, l, n) {        
         for (var r = 0, q = g.length; r &lt; q; r++) {
             $(p[r]).animate({width: l[r]},"slow"); 
         }    
    }
    return {init: a,go: i}
})();</pre>调用方法如下：<br />
<pre class="brush:js;">Vote.ListShow.init({
    id: 'appVoteBox',   
    percent: [
        0.02, 0.61, 0.36, 0.13, 0.03],
    width: 183 - 2
});

Vote.ListShow.go();</pre>投票进度条CSS样式如下：<br />
<pre class="brush:css;">body {

    font: 12px/1.5 arial,宋体;

}

html, body {

    color: #333333;

}

li.vl-item {

    float: left;

    width: 100%;

}

.app-vote ul, .app-vote ol, .app-vote li, .app-vote dl, .app-vote dt, .app-vote dd, .app-vote form, .app-vote p, .app-vote h1, .app-vote h2, .app-vote h3 {

    margin: 0;

    padding: 0;

}

.app-vote em {

    font-style: normal;

}

.app-vote ul, .app-vote ol {

    list-style: none outside none;

}

.vote-box-list {

    float: left;

    width: 586px;

}

#appVote .vote-action {

    margin-top: 30px;

    width: 60px;

}

.vote-box-list li {

	list-style: none outside none;

}

.vote-box-list li .vote-item-wrap {

    padding: 5px 0;

}

.vote-box-list li.over {

    background-color: #FFE57F;

}

.vote-box-list li h4 {

    font-size: 1em;

    font-weight: normal;

    overflow: hidden;

    text-align: right;

    width: 260px;

    word-wrap: break-word;

}

.vote-box-list li .litem {

    background: none repeat scroll 0 0 #EFEFEF;

    border: 1px solid #E2E2E2;

    height: 14px;

    width: 183px;

}

.vote-box-list li p, .vote-box-list li h4 {

    float: left;

    margin: 0;

    padding: 0;

}

.vote-box-list li p input {

    float: left;

    margin: 0;

}

.vote-box-list li em, .vote-box-list li span {

    float: left;

    height: 14px;

    overflow: hidden;

}

.vote-box-list li .vleft, .vote-box-list li .right {

    width: 2px;

}

.vnum {

    text-indent: 5px;

    width: 90px;

}

ul.vote-ctrl-act-sep {

    margin: 5px 0;

    overflow: hidden;

}

ul.vote-ctrl-act-sep li {

    border-bottom: medium none;

    border-right: 1px solid #000000;

    float: right;

    margin-right: -1px;

    padding: 0 10px;

}

#appVoteAddForm dt {

    clear: left;

    text-align: right;

    width: 150px;

}

#appVoteAddForm .txt {

    width: 400px;

}

#appVoteAddForm .vote {

    height: 300px;

    width: 400px;

}

#appVoteAddForm .tip {

    color: #6B6B6B;

}

#appVoteAddForm .back_block {

    margin: 6px 0;

    width: 550px;

}

#text_vote_area p.m {

    color: #355E9D;

}

#text_vote_area p.t {

    color: #999999;

}</pre>好了，一切OK，本文结束，谢谢阅读！</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/8/2/jquery-servlet-cross-domain-request.html]]></link>
<title><![CDATA[JQuery和Servlet来实现跨域请求]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Tue, 02 Aug 2011 14:22:19 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>在网上看到很多的JQuery跨域请求的文章，比较有意思。这里我发表一个Servlet与JQuery配置实现跨域的代码，供大家参考。不足之处请指教</p>
<p>原理：JavaScript的Ajax不可以跨域，但是可以通过向本地的一个Servlet发出请求，由Servlet完成跨域。再把远程的结构返回给客户端。这样Ajax就可以跨域了。在后面，再发一个PHP版本的，请大家关注啊。下面是代码</p>
<p>JS代码：</p>
<p>注意：在Post方式时，param1和param2为向远程发送的参数值，可以有多个。</p>
<p><pre class="brush:js;">//GET方式
function reqeustCrossDomainProxyGet(){
	var url = "http://www.baidu.com";//远程请求地址
	var param = {'requesturl':url,'typedata':'JSON'};
	var data = getCrossDomainProxyRemote(param,"json");
}
//Post方式
function reqeustCrossDomainProxyPost(param1,param2){
	var url = apiServer+"/api/lucene/query";
	var param = {'requesturl':url,'typedata':'JSON','param1':param1,'param2':param2};
	var data = getCrossDomainProxyRemote(param,"json");
}</pre><pre class="brush:js;">/**
 * JS向本址的一个Servlet发送POST请求，所有关于远程请求的参数。
 * 在此处参POST方式发送给Servlet
 * @param param 远程请求参数
 * @param rtype JS返回类型（暂时没有用到）
 * @return
 */
function getCrossDomainProxyRemote(param,rtype){
	var url = "/cross/proxy";//Servlet的URL地址
	var returndata;
	$.ajax({
		url: url,type: 'POST',dataType: rtype,timeout: 40000,data:param, async:false,
		error: function(response,error) {alert(response.status);},
		success: function(data){returndata=data;}
	});
	return returndata;
}</pre>Java代码：</p>
<p><pre class="brush:java;">public class CorssDomainProxy extends HttpServlet {
	
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);		
	}
	
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		boolean requestType = false;//标记远程请求类型，默认为GET方式
		PrintWriter out = resp.getWriter();
		Enumeration keys = req.getParameterNames();//取出客户端传入的所有参数名
		ArrayList&lt;String&gt; params = new ArrayList&lt;String&gt;();
		String url=null;
		while (keys.hasMoreElements()){
			String key = (String) keys.nextElement();
			/**
			 * 如果请求参数内有如下几种表示，这此参数不参与远程请求
			 */
			if(key.equals("requesturl")){//判断参数是否是，远程请求地址
				url = req.getParameter(key);
			}else if(key.equals("typedata")){//判断请求数据类型，暂时没有用到
				
			}else if(key.equals("returntype")){//判断请求返回类型，暂时没有用到
				
			}else{
				params.add(key);//其它加入参数列表，此处为参与远程请求的参数
				requestType = true;//修改标记，表求远程请求为POST方式
			}
		}
		
	  	HttpClient client = new HttpClient();
	  	HttpMethod method = null;
	  	if(requestType){//判断请求方式，并实例化HttpMethod对象，true:POST,false:GET
	  		method = new UTF8PostMethod(url);
	  		for(String name : params){//迭代POST参数，加入到请求中
		  		String _value = req.getParameter(name);
				((PostMethod)method).setParameter(name,_value);
		  	}
	  	}else{
	  		method = new GetMethod(url);
	  	}		
		client.executeMethod(method);//执行请求
	  	String bodystr = method.getResponseBodyAsString();//返回结果
		out.println(bodystr);//将结果返回给客户端
	}
	
	/**
	 * 内部类，转换URL字符串为UTF-8
	 * @author Administrator
	 *
	 */
	private static class UTF8PostMethod extends PostMethod { 
		public UTF8PostMethod(String url) { 
			super(url); 
		} 
		@Override 
		public String getRequestCharSet() { 
			return "UTF-8"; 
		} 
	}
	
}</pre><a target="_blank" href="http://blog.csdn.net/zwgppc/article/details/6651034">原文链接</a></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/7/29/jquery-change-image-size-dynamic.html]]></link>
<title><![CDATA[jQuery如何动态改变图片显示大小]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Fri, 29 Jul 2011 19:43:50 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>当我们要显示后台传过来若干个尺寸不一的图片时，为了保证图片大小的一致性及比例的协调，需要动态改变图片显示尺寸。通过搜索，我们可以从网上找到实现此
功能的jQuery代码如下。这段代码可以使图片的大小保持在一定范围内，如果图片的原始尺寸都大于max*值，则显示出来的图片宽度都相等。</p>
<p><pre class="brush:js;">$(document).ready(function() {
    $('.post img').each(function() {
    var maxWidth = 100; // 图片最大宽度
    var maxHeight = 100;    // 图片最大高度
    var ratio = 0;  // 缩放比例
    var width = $(this).width();    // 图片实际宽度
    var height = $(this).height();  // 图片实际高度
 
    // 检查图片是否超宽
    if(width &gt; maxWidth){
        ratio = maxWidth / width;   // 计算缩放比例
        $(this).css("width", maxWidth); // 设定实际显示宽度
        height = height * ratio;    // 计算等比例缩放后的高度 
        $(this).css("height", height);  // 设定等比例缩放后的高度
    }
 
    // 检查图片是否超高
    if(height &gt; maxHeight){
        ratio = maxHeight / height; // 计算缩放比例
        $(this).css("height", maxHeight);   // 设定实际显示高度
        width = width * ratio;    // 计算等比例缩放后的高度
        $(this).css("width", width * ratio);    // 设定等比例缩放后的高度
    }
});
});</pre>在我的js代码中，也采取了这种写法。然而在不同的浏览器测试效果时，发现此种写法不能适应chrome浏览器（chrome版本号为
10.0.648.204），会产生图片以原有尺寸显示出来的bug。后来把$('.post 
img').each()的代码用$(window).load()方法包装起来，就解决了chrome浏览器显示不正确的问题。那么在chrome浏览
器中为什么会产生bug，并且$(document).ready和$(window).load有什么区别呢？<br />
原来document 
ready事件是在HTML文档载入即DOM准备好就开始执行了，即使图片资源还没有加载进来。而window 
load事件执行的稍晚一些，它是在整个页面包括frames, 
objects和images都加载完成后才开始执行的。从这种区别可以分析出chrome浏览器在对于图片不采用$(window).load()方法
处理时，图片载入与动态改变图片的js代码执行顺序不确定。</p>
<p><a target="_blank" href="http://blog.csdn.net/roman_yu/article/details/6641911">原文链接</a></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/7/29/solve-jquery-getjson-cache-problem.html]]></link>
<title><![CDATA[解决jQuery.getJSON的缓存问题]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Fri, 29 Jul 2011 00:58:13 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>今天做测试工作，发现了一个令我费解的问题，jquery的getJson方法在opera上运行可以得到返回的结果，但是在ie8上测试，竟发现
没有发送请求，故不能取到任何返回的结果，经历了一翻周折，找到了百度空间http://hi.baidu.com/fengluolyn/blog
/item/0ac6b7130d8985ddf7039e83.html上的解决办法，便摘抄了下来……</p>
<br />
<strong>1 让每次调用的url都不一样</strong><br />
 方法：在参数中加一个随机数。<br />
 例1：<br />
 jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Name:"john",random:Math.random()},function(responseText){}<br />
 例2：<br />
 "xxx.aspx?randID="+Math.random<br />
 例3：<br />
<p> "xxx.aspx?randID="+ escape(new Date())</p>
<p>&nbsp;</p>
 <strong>2 将cache设为False</strong><br />
 $.ajax不缓存版:<br />
 $.ajax({<br />
 type:"GET"<br />
url:'test.html' ,<br />
 cache:false,<br />
 dataType:"html",<br />
<p>&nbsp;success:function(msg){</p>
 alert(msg);<br />
 }<br />
<p> }); </p>
<p>&nbsp;</p>
 <strong>3.在labels.html文件的顶部加入以下声明： </strong><br />
<br />
&lt;META HTTP-EQUIV="Pragma" CONTENT="no-cache"&gt;<br />
<p>&lt;META HTTP-EQUIV="Expires" CONTENT="-1"&gt;</p>
<p>&nbsp;</p>
 <strong>4.load函数不仅可以调用HTML，也可以调用script，比如labels.php，可以在php文件里使用header函数：</strong><br />
<br />
&lt;?php<br />
header("Cache-Control: no-cache, must-revalidate");<br />
<p>?&gt;</p>
<p>&nbsp;</p>
 <strong>5 使用post代替get方法。</strong><br />
 使用Post方式需注意：<br />
<p>
 设置header的Context-Type为application/x-www-form-urlencode确保服务器知道实体中有参数变量. 
通常使用XmlHttpRequest对象的SetRequestHeader("Context-Type","application/x-www-
 form-urlencoded;")。例：</p>
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br />
 参数是名/值一一对应的键值对,每对值用&amp;号隔开.如 var name=abc&amp;sex=man&amp;age=18，注意var name=update.php?abc&amp;sex=man&amp;age=18以及var name=?abc&amp;sex=man&amp;age=18的写法都是错误的;<br />
 参数在Send(参数)方法中发送,例： xmlHttp.send(name); 如果是get方式，直接 xmlHttp.send(null);<br />
<p>服务器端请求参数区分Get与Post。如果是get方式则$username = $_GET["username"]; 如果是post方式，则$username = $_POST["username"];</p>
<p>&nbsp;</p>
 <strong>6 在服务端加 header("Cache-Control: no-cache, must-reva lidate");<br />
</strong><p><strong> 7 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");</strong></p>
<p><strong> 8 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");、</strong></p>
<p><strong><a target="_blank" href="http://mfan.iteye.com/blog/974132"><span style="font-weight:normal;">原文链接</span></a><br />
</strong></p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/7/27/jquery-dom-object-convert.html]]></link>
<title><![CDATA[jquery对象和DOM对象的互相转换]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Wed, 27 Jul 2011 21:50:24 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[刚开始学习<span class="hilite1">jQuery</span>，可能一时会分不清楚哪些是<span class="hilite1">jQuery</span>对象，哪些是<span class="hilite3">DOM</span>对象。至于<span class="hilite3">DOM</span>对象不多解释，我们接触的太多了，下面重点介绍一下<span class="hilite1">jQuery</span>，以及两者相互间的转换。 <br />
<br />
<strong><span style="color:red;">什么是<span class="hilite1">jQuery</span>对象？</span></strong> <br />
<br />
---就是通过<span class="hilite1">jQuery</span>包装<span class="hilite3">DOM</span>对象后产生的对象。<span class="hilite1">jQuery</span>对象是<span class="hilite1">jQuery</span>独有的，其可以使用<span class="hilite1">jQuery</span>里的方法。 <br />
比如： <br />
$("#test").html()&nbsp;&nbsp; 意思是指：获取ID为test的元素内的html代码。其中html()是<span class="hilite1">jQuery</span>里的方法 <br />
这段代码等同于用<span class="hilite3">DOM</span>实现代码： <br />
document.getElementById("id").innerHTML; <br />
虽然<span class="hilite1">jQuery</span>对象是包装<span class="hilite3">DOM</span>对象后产生的，但是<span class="hilite1">jQuery</span>无法使用<span class="hilite3">DOM</span>对象的任何方法，同理<span class="hilite3">DOM</span>对象也不能使用<span class="hilite1">jQuery</span>里的方法.乱使用会报错。比如：$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。 <br />
还有一个要注意的是：用#id作为选择符取得的是<span class="hilite1">jQuery</span>对象与document.getElementById("id")得到的<span class="hilite3">DOM</span>对象，这两者并不等价。请参看如下说的两者间的转换。 <br />
既然<span class="hilite1">jQuery</span>有区别但也有联系，那么<span class="hilite1">jQuery</span>对象与<span class="hilite3">DOM</span>对象也可以相互转换。在再两者转换前首先我们给一个约定：如果一个获取的是<span class="hilite1">jQuery</span>对象，那么我们在变量前面加上$，如：var $variab = <span class="hilite1">jQuery</span>对象；如果获取的是<span class="hilite3">DOM</span>对象，则与习惯普通一样：var variab = <span class="hilite3">DOM</span>对象；这么约定只是便于讲解与区别，实际使用中并不规定。 <br />
<br />
<strong><span style="color:red;"><span class="hilite1">jQuery</span>对象转成<span class="hilite3">DOM</span>对象：</span></strong> <br />
<br />
两种转换方式将一个<span class="hilite1">jQuery</span>对象转换成<span class="hilite3">DOM</span>对象：[index]和.get(index); <br />
(1)<span class="hilite1">jQuery</span>对象是一个数据对象，可以通过[index]的方法，来得到相应的<span class="hilite3">DOM</span>对象。 <br />
如：var $v =$("#v") ; //<span class="hilite1">jQuery</span>对象 <br />
var v=$v[0];&nbsp;&nbsp;&nbsp; //<span class="hilite3">DOM</span>对象 <br />
<p>alert(v.checked)&nbsp;&nbsp; //检测这个checkbox是否被选中 </p>
<p>&nbsp;</p>
(2)<span class="hilite1">jQuery</span>本身提供，通过.get(index)方法，得到相应的<span class="hilite3">DOM</span>对象 <br />
如：var $v=$("#v");&nbsp; //<span class="hilite1">jQuery</span>对象 <br />
var v=$v.get(0);&nbsp;&nbsp; //<span class="hilite3">DOM</span>对象 <br />
alert(v.checked)&nbsp; //检测这个checkbox是否被选中 <br />
<br />
<strong><span style="color:red;"><span class="hilite3">DOM</span>对象转成<span class="hilite1">jQuery</span>对象:</span></strong> <br />
<br />
对于已经是一个<span class="hilite3">DOM</span>对象，只需要用$()把<span class="hilite3">DOM</span>对象包装起来，就可以获得一个<span class="hilite1">jQuery</span>对象了。$(<span class="hilite3">DOM</span>对象) <br />
如：var v=document.getElementById("v");&nbsp; //<span class="hilite3">DOM</span>对象 <br />
var $v=$(v);&nbsp;&nbsp;&nbsp; //<span class="hilite1">jQuery</span>对象 <br />
转换后，就可以任意使用<span class="hilite1">jQuery</span>的方法了。 <br />
<p>通过以上方法，可以任意的相互转换<span class="hilite1">jQuery</span>对象和<span class="hilite3">DOM</span>对象。需要再强调注意的是：<span class="hilite3">DOM</span>对象才能使用<span class="hilite3">DOM</span>中的方法，<span class="hilite1">jQuery</span>对象是不可以用<span class="hilite3">DOM</span>中的方法</p>
<p>&nbsp;</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/7/18/jquery-slider-nav-demo.html]]></link>
<title><![CDATA[jquery打造一款侧边弹出的垂直导航]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Mon, 18 Jul 2011 20:13:32 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>这是一款利用jquery动画特效和css打造的侧边弹出垂直导航，整个弹出过程比较流畅，而且代码很简单，如果你正在寻找一款带动画的垂直导航，那么可以试试这个。下面是在线demo</p>
<p>
<iframe id="sweeper_demo" src="http://www.itivy.com/html/slider-nav/index.html" name="sweeper_demo" style="border:0pt none;width:600px;height:280px;" border="0" marginwidth="0" marginheight="0" allowtransparency="yes" frameborder="no" scrolling="no"></iframe></p>
<p>HTML源码：</p>
<p><pre class="brush:xhtml;">&lt;title&gt;Jquery+CSS侧边弹出垂直导航&lt;/title&gt; 
&lt;style type="text/css"&gt;
html, body, ul, li {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
    font-family: "Verdana","lucida sans",Sans-serif;
    font-size: 12px;
}
html, body {
    min-height: 100%;
    color: #FFFFFF;
    background-repeat: repeat-x;
    background-position: top;
    background-color: #161f2a;
}
ul.side_nav {
     width: 200px;
     float: left;
     margin: 0;
     padding: 0;
}
ul.side_nav li {
     position: relative;
     float: left;
     margin: 0;
     padding: 0;
     display: inline;
}
ul.side_nav li a {
     width: 165px;
     border-top: 1px solid #3373a9;
     border-bottom: 1px solid #003867;
     padding: 10px 10px 10px 25px;
     display: block;
     color: #fff;
     text-decoration: none;
     background: #005094 url(sidenav_arrow.gif) no-repeat 5px 10px;
     position: relative;
     z-index: 2;
}
ul.side_nav li a:hover {
     background-color: #2d353f;
}
ul.side_nav li div {
     display: none;
     position: absolute;
     top: 2px;
     left: 0;
     width: 225px;
     background: url(bubble_top.gif) no-repeat right top;
}
ul.side_nav li div p {
     margin: 7px 0;
     line-height: 1.3em;
     padding: 0 5px 10px 30px;
     color: #444;
     background: url(bubble_btm.gif) no-repeat right bottom;
}
&lt;/style&gt;
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js
"&gt;&lt;/script&gt;
&lt;script language="javascript"&gt;
    $(document).ready(function() {

        $("ul.side_nav li").hover(function() {
            $(this).find("div").stop()
        .animate({ left: "210", opacity: 1 }, "fast")
        .css("display", "block")
        }, function() {
            $(this).find("div").stop()
        .animate({ left: "0", opacity: 0 }, "fast")
        });
    });
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;ul class="side_nav"&gt;
    &lt;li&gt;
        &lt;a href="www.corange.cn"&gt;Corange.cn&lt;/a&gt;

        &lt;div&gt;&lt;p&gt;Go home!&lt;Br /&gt;ASP&lt;/p&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;a href="#"&gt;About Me&lt;/a&gt;
        &lt;div&gt;&lt;p&gt;Get to know me.&lt;/p&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;

        &lt;a href="#"&gt;Portfolio&lt;/a&gt;
        &lt;div&gt;&lt;p&gt;Get to check out my featured work!&lt;/p&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;a href="#"&gt;Blog&lt;/a&gt;
        &lt;div&gt;&lt;p&gt;Tutorials, articles and resources.&lt;/p&gt;&lt;/div&gt;
    &lt;/li&gt;

    &lt;li&gt;
        &lt;a href="#"&gt;Contact&lt;/a&gt;
        &lt;div&gt;&lt;p&gt;Don't hesitate to drop me a line!&lt;/p&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;a href="#"&gt;Rss&lt;/a&gt;
        &lt;div&gt;&lt;p&gt;News, Video and so on.&lt;/p&gt;&lt;/div&gt;

    &lt;/li&gt;
&lt;/ul&gt;

&lt;/body&gt;
&lt;/html&gt;</pre><a target="_blank" href="http://www.itivy.com/DownloadFile.ashx?id=634466167423666985"><span style="font-size:14px;">点击下载源码</span></a></p>
<p>&nbsp;</p>]]></description>
</item>

<item>
<link><![CDATA[http://www.itivy.com/jquery/archive/2011/7/6/jquery-div-rotate.html]]></link>
<title><![CDATA[jQuery实现翻转效果菜单]]></title>
<author><![CDATA[jQuery小子]]></author>
<category><![CDATA[]]></category>
<pubDate>Wed, 06 Jul 2011 00:15:04 GMT</pubDate>
<guid><![CDATA[]]></guid>
<description><![CDATA[<p>代码简介：</p>
<p>jQuery精仿手机上的翻牌效果菜单，很平滑的动画翻牌效果，每点击一下菜单，就会翻去一下，貌似很灵敏的动作。注意：如果预览时没看到效果，请刷新一下页面，让jquery载入就行了，在实际使用时不会出现这种情况。</p>
<p>代码内容：</p>
<p><pre class="brush:xhtml;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;jQuery精仿手机上的翻牌效果菜单_网页代码站(www.webdm.cn)&lt;/title&gt;
&lt;style type="text/css"&gt;
ul,li{list-style:none;padding:0;margin:0;}
#btncell{width:300px;height:100px;border:1px solid #777;margin:50px auto;}
#btncell li{width:100px;float:left;height:50px;font-size:14px;text-align:center;line-height:28px;position:relative;z-index:1;}
#btncell li a{display:block;height:28px;border:2px solid #333;text-decoration:none;
width:50px;background:#888;overflow:hidden;position:absolute;left:25px;top:10px;}
&lt;/style&gt;
&lt;script type="text/javascript" src="http://www.webdm.cn/themes/script/jquery.js"&gt;&lt;/script&gt;
&lt;script language="javascript"&gt;
var nummove=0;
var numout=0;
$(function(){
	$("#btncell li").hover(
		function(){
		if(nummove==0)
		{
			nummove=1;
			$("a",this).animate({ height: "0px",top: "25px"}, 80,function(){nummove=0;});
			$("a",this).animate({ height: "28px",top: "10px"}, 80);
			$("a",this).css("background","yellow");
		}
			},
			function(){
			if(numout==0)
			{
			numout=1;
			$("a",this).animate({ height: "0px",top: "25px"}, 80,function(){numout=0;});
			$("a",this).animate({ height: "28px",top: "10px"}, 80);
			$("a",this).css("background","#888");
			numout=0;
			}
			}
	)
	$("#btncell li a").click(function(){
		$(this).parents("li").css("z-index","2")
		$(this).animate({ height: "558px",top: "-255px",width: "1000px",left: "-460px",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opacity: 'toggle',lineHeight: '558px',fontSize: '500px'}, 1000);
		$(this).animate({ height: "28px",top: "10px",width: "50px",left: "25px",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opacity: 'toggle',lineHeight: '28px',fontSize: '12px'}, 400);
		$(this).parents("li").css("z-index","1")
	})
})
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
预览效果时左下角会提示错误，而且看不到效果，刷新一下就可以看到效果了。&lt;ul id="btncell"&gt;
  &lt;li&gt;&lt;a href="#"&gt;1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br&gt;</pre><a target="_blank" href="http://www.cnblogs.com/webdm/archive/2011/07/05/2098171.html">原文链接</a></p>]]></description>
</item>


</channel>
</rss>

