jquery 插件學習

来源:https://www.cnblogs.com/yuanpan666/archive/2018/09/05/9591052.html
-Advertisement-
Play Games

練習jquery上的一個插件編寫 1.標準的3個基本內容,根目錄裡面創建2個文件夾(存放css和js)和1個html頁面文件; 2.測試的主html頁面代碼 3.css文件中設置2個css格式文件 3.1第一個main.css 3.2 menu.css 4.存放js的文件中有2個文件,1個是jque ...


練習jquery上的一個插件編寫

1.標準的3個基本內容,根目錄裡面創建2個文件夾(存放css和js)和1個html頁面文件;

2.測試的主html頁面代碼

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6 <meta charset="utf-8" />
 7     <title>Jqia Context menu - jQuery in Acition</title>
 8     <link rel="stylesheet" href="Css/main.css"/>
 9     <link rel="stylesheet" href="Css/menu.css"/>
10     <style>
11         #area{
12             height:100px;
13             padding:10px;
14             margin-bottom:20px;
15             background-color:#ADD8E6;
16         }
17     </style>
18 </head>
19 <body>
20     <h1 class="header">Jqia Context Menu plugin demo</h1>
21 
22     <div id="area">
23         Click here to show the custom menu.
24     </div>
25 
26     <button id="init-destroy-button">Init</button>
27 
28     <ul id="context-menu" class="context-menu">
29         <li>
30             <a href="http://manning.com/derosa">jQuery in action</a>
31         </li>
32         <li>
33             <a href="http://manning.com/derosa">jQuery.com</a>
34         </li>
35         <li>
36             <a href="http://manning.com/derosa">Manning.com</a>
37         </li>
38     </ul>
39     <script src="Js/jquery-1.11.3.min.js"></script>
40     <script src="Js/jquery.jqia.contextmenu.js"></script>
41     <script>
42         $('#init-destroy-button').click(function () {
43             var $this = $(this);
44             if ($this.text() === 'Init'){
45                 $this.text('Destroy');
46                 $("#area").jqiaContextMenu({idMenu:"context-menu"});
47             }else{
48                $this.text('Init');
49                $("#area").jqiaContextMenu("destroy"); 
50             }
51 
52         }).click();
53     </script>
54 
55 </body>
56 </html>

3.css文件中設置2個css格式文件

3.1第一個main.css

body {
    max-width:1024px;
    margin: 1em auto;
    padding:0 0.5em;
}

.clearfix{
    zoom:1;
}

.clearfix:after{
    content:" ";
    visibility:hidden;
    display:block;
    height:0;
    clear:both;
}

3.2 menu.css

ul.context-menu{
    position:absolute;
    z-index:1000;
    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

 1 (function($){
 2     var namespace='jqiaContextMenu';
 3 
 4     var methods = {
 5         init: function(options){
 6             if(!options.idMenu){
 7                 $.error('No menu specified');
 8             }else if ($('#' + options.idMenu).length === 0){
 9                 $.error('The menu specified does not exist');
10             }
11             options = $.extend(true,{},$.fn.jqiaContextMenu.defaults,options);
12 
13             if(
14                 this.filter(function(){
15                     return $(this).data(namespace);
16                 }).length !==0
17                 ){
18                 $.error('The plugin has already been initialized');
19             }
20 
21             this.data(namespace,options);
22 
23             /*
24             以下是給整個頁面添加“點擊”和“右擊”事件,確保在區域外的點擊均能使menu隱藏
25             */
26 
27             $('html').on(
28                 'contextmenu.'+namespace+' click.'+namespace,
29                 function(){
30                     $('#' + options.idMenu).hide();
31                 } 
32             );
33 
34             this.on(
35                 'contextmenu.'+namespace + (options.bindeLeftClick? ' click.'+namespace : ''),
36                 function(event){
37                     event.preventDefault();
38                     event.stopPropagation();
39 
40                     $('#' + options.idMenu).css(
41                         {
42                             top:event.pageY,
43                             left:event.pageX
44                         }).show();
45                 }
46             );
47 
48             return this;
49         },
50 
51         destroy:function(){
52             this.each(function(){
53                 var options = $(this).data(namespace);
54                 if(options !== undefined){
55                     $('#' + options.idMenu).hide();
56                 }
57             })
58             .removeData(name)
59             .off('.'+namespace);
60 
61             return this;
62         }
63     };
64 
65     $.fn.jqiaContextMenu = function(method){
66         if(methods[method]){
67             return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
68         }else if ($.type(method) === 'object'){
69             return methods.init.apply(this,arguments);
70         }else {
71             $.error('Method ' + method+' dose not on jqQuery.jqiaContextMenu');
72         }
73     };
74 
75     $.fn.jqiaContextMenu.defaults = {
76         idMenu:null;
77         bindeLeftClick:false
78     };
79 
80 
81 })(jQuery);

5.編寫javascript時,要從大局入手,局部在細緻描述

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • //來自 https://www.cnblogs.com/lhl66/p/8021730.html 侵刪el:element 需要獲取的元素,一定是HTML中的根容器元素 data:用於數據的存儲 methods:用於存儲各種方法 數據綁定字面量只載入一次{{* msg}} data裡面可以進行簡單 ...
  • 何為滾動視差 視差滾動(Parallax Scrolling)是指讓多層背景以不同的速度移動,形成立體的運動效果,帶來非常出色的視覺體驗。 作為網頁設計的熱點趨勢,越來越多的網站應用了這項技術。 通常而言,滾動視差在前端需要輔助 Javascript 才能實現。當然,其實 CSS 在實現滾動視差效果 ...
  • 參考鏈接:https://segmentfault.com/q/1010000010714863 ...
  • 原因: 元素設置了float屬性後,就會脫離文檔流,當 包含框 的高度小於 浮動框 的時候,會出現高度塌陷。因此才需要清除浮動! 表現如圖:包括框container已經包不住float的圖片了! 清除浮動方法: 1:給 包含框 添加 after偽元素清除浮動。代碼: 2:使用BFC, 原理:讓浮動塊 ...
  • 在上一篇《前端面試 - 演算法篇(二分法)》的評論中,有朋友提出了一個“迴圈殺人游戲” 就在我為之苦惱的時候,一位同事在我身旁經過,突然說了一句:“咦,這不是約塞夫問題嗎?” 一、面試題 原題目不太明朗(一號到底殺不殺?) 於是把題目優化一下,更接近於原本的約塞夫問題 假設有100人,分別編號 1~1 ...
  • left right aaa ... ...
  • JS介紹 數據輸出\輸入 JS變數 JS數據類型 進位介紹 數字(Number) 字元串(String) Boolean類型/Undefined類型/Null類型 類型轉換 運算符 流程式控制制 break與continue關鍵字 數組(Array) 函數(function) 函數中的幾個參數 sort ...
  • 獲取ECharts npm install echarts save <! more 自定義構建ECharts 我選用的是常用版的echarts/dist/echarts.common.js 在我的項目根目錄下myProject新建echarts.common.js,然後將echarts.commo ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...