<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>lotin_2001</title>
    <description></description>
    <link>http://lotin-2001.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Jquery插件开发（一）</title>
        <author>lotin_2001</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lotin-2001.javaeye.com">lotin_2001</a>&nbsp;
          链接：<a href="http://lotin-2001.javaeye.com/blog/163275" style="color:red;">http://lotin-2001.javaeye.com/blog/163275</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong><span style="font-size: medium">开发第三方插件</span></strong><br />  开发第三方插件是我们提高JQuery代码经验的不错的选择，当我们的代码想要重用的时候，我们总是习惯把这些代码封装成一个插件，幸运的是在JQuery中这并不比写代码复杂多少。<br /> <strong><span style="font-size: medium">添加一个新的全局函数</span></strong><br />  JQuery的全局函数也就是属于JQuery命名空间的函数，典型的例子就是$.AJAX()这个函数。将函数定义于Jquery的命名空间，我们只需要担心，它是否与其他函数存在冲突。<br />  添加一个全局函数，我们只需如下定义：<br /> <pre name="code" class="java">jQuery.foo = function() { alert('This is a test. This is only a test.');};  </pre><br /> 调用的时候可以这样写：<br /> <pre name="code" class="java">jQuery.foo();</pre><br /> 也可以这样写：<br /> <pre name="code" class="java">$.foo();</pre><br /> <strong><span style="font-size: medium">定义多个全局函数</span></strong><br /> 如果我们的插件需要多个全局函数，可以如下定义<br /> <pre name="code" class="java">jQuery.foo = function() { alert('This is a test. This is only a test.');};jQuery.bar = function(param) { alert('This function takes a parameter, which is "' + param + '".');};</pre><br /> 同时这两个方法我们可以如下调用<br /> <pre name="code" class="java">$.foo();$.bar('baz');</pre><br /> 当然我们也可以使用$.extend()这个函数扩展来代替以上的定义<br /> <pre name="code" class="java">
 jQuery.extend({ foo: function() { alert('This is a test. This is only a test.'); }, bar: function(param) { alert('This function takes a parameter, which is "' + param +'".'); }});
 </pre><br /> 以上效果是相同的，虽然在Jquery命名空间中，我们禁止使用了大量的javaScript函数名和变量名。但是仍然不可避免某些函数或变量名将于其他Jquery插件冲突，因此我们习惯将一些方法封装到另一个自定义的命名空间。<br /> <pre name="code" class="java">
 jQuery.myPlugin = { foo: function() { alert('This is a test. This is only a test.'); }, bar: function(param) { alert('This function takes a parameter, which is "' + param + '".'); }};
 </pre><br /> 当然我们仍然可以认为这些函数为全局函数，我们可以如下调用<br /> <pre name="code" class="java">
 $.myPlugin.foo();$.myPlugin.bar('baz');
</pre><br /> 通过这个技巧（使用独立的插件名），我们可以避免命名空间内函数的冲突。
          <br/>
          <span style="color:red;">
            <a href="http://lotin-2001.javaeye.com/blog/163275#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 10:54:39 +0800</pubDate>
        <link>http://lotin-2001.javaeye.com/blog/163275</link>
        <guid>http://lotin-2001.javaeye.com/blog/163275</guid>
      </item>
  </channel>
</rss>