jquery 插件学习
练习jquery上的一个插件编写
1.标准的3个基本内容,根目录里面创建2个文件夹(存放css和js)和1个html页面文件;
2.测试的主html页面代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<title>Jqia Context menu - jQuery in Acition</title>
<link rel="stylesheet" href="Css/main.css"/>
<link rel="stylesheet" href="Css/menu.css"/>
<style>
#area{
height:100px;
padding:10px;
margin-bottom:20px;
background-color:#ADD8E6;
}
</style>
</head>
<body>
<h1 class="header">Jqia Context Menu plugin demo</h1> <div id="area">
Click here to show the custom menu.
</div> <button id="init-destroy-button">Init</button> <ul id="context-menu" class="context-menu">
<li>
<a href="http://manning.com/derosa">jQuery in action</a>
</li>
<li>
<a href="http://manning.com/derosa">jQuery.com</a>
</li>
<li>
<a href="http://manning.com/derosa">Manning.com</a>
</li>
</ul>
<script src="Js/jquery-1.11.3.min.js"></script>
<script src="Js/jquery.jqia.contextmenu.js"></script>
<script>
$('#init-destroy-button').click(function () {
var $this = $(this);
if ($this.text() === 'Init'){
$this.text('Destroy');
$("#area").jqiaContextMenu({idMenu:"context-menu"});
}else{
$this.text('Init');
$("#area").jqiaContextMenu("destroy");
} }).click();
</script> </body>
</html>
3.css文件中设置2个css格式文件
3.1第一个main.css
body {
    max-width:1024px;
    margin: 1em auto;
    padding:0 0.5em;
}
.clearfix{
    zoom:;
}
.clearfix:after{
    content:" ";
    visibility:hidden;
    display:block;
    height:;
    clear:both;
}
3.2 menu.css
ul.context-menu{
    position:absolute;
    z-index:;
    display:none;
    background-color:Menu;
    list-style-type:none !important;
    margin:0 !important;
    padding:0 !important;
}
ul.context-menu *
{
    color:MenuText;
}
ul.context-menu > li
{
    border:1px solid black;
    margin:0 !important;
    padding:2px 5px !important;
}
ul.context-menu > li:hover
{
    background-color:ActiveCaption;
}
ul.context-menu > li a
{
    display:block;
    text-decoration:none;
}
4.存放js的文件中有2个文件,1个是jquery,另一个是插架的js
4.1 jquery引入
4.2 menu.js
 (function($){
     var namespace='jqiaContextMenu';
     var methods = {
         init: function(options){
             if(!options.idMenu){
                 $.error('No menu specified');
             }else if ($('#' + options.idMenu).length === 0){
                 $.error('The menu specified does not exist');
             }
             options = $.extend(true,{},$.fn.jqiaContextMenu.defaults,options);
             if(
                 this.filter(function(){
                     return $(this).data(namespace);
                 }).length !==0
                 ){
                 $.error('The plugin has already been initialized');
             }
             this.data(namespace,options);
             /*
             以下是给整个页面添加“点击”和“右击”事件,确保在区域外的点击均能使menu隐藏
             */
             $('html').on(
                 'contextmenu.'+namespace+' click.'+namespace,
                 function(){
                     $('#' + options.idMenu).hide();
                 }
             );
             this.on(
                 'contextmenu.'+namespace + (options.bindeLeftClick? ' click.'+namespace : ''),
                 function(event){
                     event.preventDefault();
                     event.stopPropagation();
                     $('#' + options.idMenu).css(
                         {
                             top:event.pageY,
                             left:event.pageX
                         }).show();
                 }
             );
             return this;
         },
         destroy:function(){
             this.each(function(){
                 var options = $(this).data(namespace);
                 if(options !== undefined){
                     $('#' + options.idMenu).hide();
                 }
             })
             .removeData(name)
             .off('.'+namespace);
             return this;
         }
     };
     $.fn.jqiaContextMenu = function(method){
         if(methods[method]){
             return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
         }else if ($.type(method) === 'object'){
             return methods.init.apply(this,arguments);
         }else {
             $.error('Method ' + method+' dose not on jqQuery.jqiaContextMenu');
         }
     };
     $.fn.jqiaContextMenu.defaults = {
         idMenu:null;
         bindeLeftClick:false
     };
 })(jQuery);
5.编写javascript时,要从大局入手,局部在细致描述
jquery 插件学习的更多相关文章
- Jquery插件学习
		
前端开发也工作了一段时间,Jquery代码页写了很多,但是都是些的很零散的,不是很好用,网上看了很多人写的Jquery 很好用,而且到每个项目中都可以使用, 本人就感觉很好奇他们是怎么做到的呢,于是自 ...
 - jquery插件学习之元素顶部悬浮
		
jquery插件的学习: HTML部分及应用 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
 - jQuery插件学习(一)
		
由于项目开发需要,经常会用到一些jquery插件,但网上已有的插件常常又不能100%满足业务需求,所以就想自己能看懂插件的代码,进行一些功能上的改动和补充,或者能自己自定义插件就更好了.所以这段时间会 ...
 - jquery插件 - 学习笔记 (插件参数及函数的调用)
		
今天研究的是jquery插件的基本写法: 比如我打算写一个名为 ImageZoom 的插件 前台调用: <script src="ImageZoom.js"></ ...
 - JQUERY插件学习之jQuery UI
		
jQuery UI:http://jqueryui.com/ jQuery UI介绍: jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互 ...
 - jQuery插件学习笔记
		
近期在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其它地方反复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外 ...
 - [置顶] JQuery插件学习教程
		
这是JQuery其它常用插件的视频教程,包括validate插件,.comet插件等.同时有大量实例项目,如果你是喜欢JQuery的童鞋千万不要错过. 教程的内容有: 1_validate插件(1) ...
 - jQuery插件学习基础
		
1.给jQuery添加全局的函数: $.zgz={ fn1:function(){ alert('我是刚设置的第一个全局函数') },fn2:function(){ alert('我是刚设置的第二个 ...
 - jQuery插件学习之选项卡Tab
		
在网站开发中经常会用到选项卡功能,为了节省一下写代码时间,封装了一下tab插件,方便调用. 来看一下效果: tab-1 tab-2 tab-3 tabs-1-panel tabs-2-panel ta ...
 
随机推荐
- JS高级程序设计第三版——变量、作用域和内存问题
			
JavaScript变量: 由于JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可 ...
 - C++中long是什么类型
			
long long本质上还是整型,只不过是一种超长的整型. int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) .long:在32位系统是32位整型,取值范围为-2^31 ~ (2^ ...
 - Spring boot配置注意事项
			
SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! “Application类”是指SpringBoot项目入口类.这个类的位置很关键: 如果App ...
 - Linux 虚拟机虚拟网卡问题导致无法连接问题
			
问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...
 - tcp.cc
			
ns2-tcp-tcp.cc /* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ /* * Copyri ...
 - Linux->Ubuntu配置tomcat开机自动启动
			
Ubuntu配置tomcat开机自动启动 我们有时候会有这样一个需求: 在开机的时候就启动一个服务,比如tomcat. 我们可以这样做: 将tomcat目录下/bin中的catalina.sh拷贝到/ ...
 - 使用CoreImage教程
			
使用CoreImage教程 CoreImage包含有很多实用的滤镜,专业处理图片的库,为了能看到各种渲染效果,请使用如下图片素材. 现在可以开始教程了: #define FIX_IMAGE(image ...
 - XML布局之路
			
XML布局存放在工程文件的res/layout目录下.安卓和PC端的界面布局有用到. 常用的布局方式,线性布局:LinearLayout 表格布局:TableLayout 帧布局 :FrameLay ...
 - C# Winform App 获取当前路径
			
直接双击执行 D:\test1.exeSystem.Diagnostics.Process.GetCurrentProcess().MainModule.FileName D:\Test1.exe S ...
 - UID卡修改&UID锁死修复
			
好久没发RFID类文章,最近有小伙伴问到UID卡的问题,在这里就写一写吧. 首先是UID修改的问题,只要卡是UID卡,就都可以修改UID,首先读卡器连接电脑,卡片放到读卡器上. 然后我们要用一个工具, ...