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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...