ホームページ >ウェブフロントエンド >jsチュートリアル >jqueryプラグイン開発におけるタブ制作技術の共有

jqueryプラグイン開発におけるタブ制作技術の共有

小云云
小云云オリジナル
2017-12-29 17:53:301472ブラウズ

この記事は主にjqueryプラグイン開発におけるタブ作成について詳しく紹介していますので、興味のある方は参考にしていただければ幸いです。

jquery では、一般的なプラグイン開発方法は次のとおりです。

1 つは、$ 関数自体のメソッドを拡張することです。これは、静的拡張機能 (クラス拡張機能とも呼ばれます) です。メソッドもあります

プロトタイプオブジェクト $.fn 上で拡張され、開発されたプラグインは dom 要素上で使用されます

1. クラスレベルの拡張


$.showMsg = function(){
   alert('hello,welcome to study jquery plugin dev');
  }
  // $.showMsg();

上記の例は$関数内にメソッドshowMsgを追加し、$.showMsg()で呼び出すことができます


$.showName = function(){
   console.log( 'ghostwu' );
  }
  $.showName();

この種のプラグインは比較的珍しいです。一般に、jquery () の $.trim、$.isArray などのツール メソッドを開発するために使用されます。待ってください

次に、$.fn で関数を拡張します

この種のプラグインは要素で使用されます。たとえば、関数を拡張してボタンをクリックし、現在のボタンの値を表示します


$.fn.showValue = function(){
  return $(this).val();
}

  $(function(){
   $("input").click(function(){
    // alert($(this).showMsg());
    alert($(this).showMsg());
   });
  });

<input type="button" value="点我">

ページの入力要素を取得した後、現在の要素の値を返す showValue メソッドを追加します。イベントをバインドすると、このメソッドを呼び出して「Click Me」ボタンの値を表示できます。実際のプラグイン開発では、これが一般的に使用されます。次に、この拡張メカニズムを使用して単純なタブ プラグインを開発します。

ページのレイアウトとスタイル:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.js"></script>
 <style>
  #tab {
   width:400px;
   height:30px;
  }
  #tab li, #tab ul {
   list-style-type:none;
  }
  #tab ul {
   width:400px;
   height: 30px;
   border-bottom:1px solid #ccc;
   line-height: 30px;
  }
  #tab ul li {
   float:left;
   margin-left: 20px;
   padding:0px 10px;
  }
  #tab ul li.active {
   background: yellow;
  }
  #tab ul li a {
   text-decoration: none;
   color:#666;
  }
  #tab p {
   width:400px;
   height:350px;
   background-color:#ccc;
  }
  .clearfix:after{
   content: &#39;&#39;;
   display: block;
   clear: both;
   height: 0;
   visibility: hidden;
  }
 </style>
 <script src="tab2.js"></script>
 <script>
  $(function(){
   $("#tab").tabs( { evType : &#39;mouseover&#39; } );
  });
 </script>
</head>
<body>
 <p id="tab">
  <ul class="clearfix">
   <li><a href="#tab1">选项1</a></li>
   <li><a href="#tab2">选项2</a></li>
   <li><a href="#tab3">选项3</a></li>
  </ul>
  <p id="tab1">作者:ghostwu(1)
   <p>博客: http://www.php.cn/ghostwu/</p>
  </p>
  <p id="tab2">作者:ghostwu(2)
   <p>博客: http://www.php.cn//ghostwu/</p>
  </p>
  <p id="tab3">作者:ghostwu(3)
   <p>博客: http://www.php.cn//ghostwu/</p>
  </p>
 </p>
</body>
</html>

tab2.jsファイル


;(function ($) {
 $.fn.tabs = function (opt) {
  var def = { evType: "click" }; //定义了一个默认配置
  var opts = $.extend({}, def, opt);
  var obj = $(this);

  $("ul li:first", obj).addClass("active");
  obj.children("p").hide();
  obj.children("p").eq(0).show();

  $("ul li", obj).bind(opts.evType, function () {
   $(this).attr("class", "active").siblings("li").attr("class","");
   var id = $(this).find("a").attr("href").substring(1);
   obj.children("p").hide();
   $("#" + id, obj).show();
  });
 };
})(jQuery);

1、自己実行関数は、プラグインをモジュールにカプセル化し、jQueryオブジェクトを仮パラメータ$

に渡します

2、3 行目、デフォルト設定、タブのトリガー タイプを定義します。デフォルトはクリック イベントです。

3、4 行目、opt がパラメータを渡す場合は opt 設定を使用し、それ以外の場合は 3 行目のデフォルト設定を使用します。この行の目的は、プラグインのソース コードを変更せずにプラグインの式を設定することです

4、7 - 9 行目、タブの最初の p を表示し、残りを非表示にします。 class='active'

5 の 11 ~ 16 行目を黄色で強調表示し、対応するタブをクリックして、対応する p を表示または非表示にします

関連する推奨事項:

JavaScript プラグインのタブ効果の共有について

タブ機能を実装したWeChatアプレット

JS+jQuery 簡単なタブの記述例

以上がjqueryプラグイン開発におけるタブ制作技術の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。