Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung vollständiger Beispiele der Komponentenentwicklung mit jQuery

Ausführliche Erläuterung vollständiger Beispiele der Komponentenentwicklung mit jQuery

黄舟
黄舟Original
2017-03-18 15:01:331442Durchsuche

Die Prinzipien der Verwendung von jQuery für die Komponentenentwicklung und der Verwendung reiner JavaScript-Skripte (ohne Verwendung eines Frameworks) sind grundsätzlich ähnlich, insbesondere ist die Organisation öffentlicher Methoden gleich.

Der Unterschied besteht darin, dass jQuery einen Plug-in-Mechanismus verwendet, um das Operationsobjekt (DOM-Element) direkt über $() zu binden und dann Ereignisse an das DOM-Element oder den HTML-Code zu binden.

Ein weiterer Unterschied besteht darin, dass jQuery als Werkzeug zum Erstellen von DOM-Objekten, zur schnellen Suche nach bestimmten DOM-Objekten usw. verwendet wird.

Beispieltest bestanden.

Ein einfaches elementares Beispiel, das nur die Funktionen zum Hinzufügen von Seiten und Auswählen von Seiten implementiert.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Design JS component with jQuery </title>
<script src="mx/scripts/lib/jquery.js" type="text/javascript"></script>
<link href="tabs.css" rel="stylesheet" type="text/css" />

 <style>
      
.tabsp{width: 500px;height: 350px;margin-top: 0px;margin-left: 0px;}
.tabsp ul{
	width: 500px;height: 20px;
	list-style: none;
	
	margin-bottom: 0px;margin: 0px;
	padding: 0px;
	border-left:solid 1px #ffffff;border-right:solid 1px #ffffff;border-top:solid 1px #ffffff;border-bottom:solid 1px #e0e0e0;
}

.tabsp p{
	width: 500px;height: 330px;
	background-color: #ffffff; 
	border:solid 1px #e0e0e0;
}


.tabsSeletedLi{
	width: 100px;height: 20px;
	background-color: white;
	float: left;
	text-align: center;
	border-left:solid 1px #e0e0e0;border-right:solid 1px #e0e0e0;border-top:solid 1px #e0e0e0;border-bottom:solid 1px #ffffff;
}

.tabsSeletedLi a{
	width: 100px;
	height: 20px;
	color:#000000;
	text-decoration:none;
}

.tabsUnSeletedLi{
	width: 100px;height: 20px;
	background-color: #e0e0e0; 
	float: left;
	text-align: center;
	border:solid 1px #e0e0e0;
}

.tabsUnSeletedLi a{
	width: 100px;height: 20px;
	color: #ffffff;
	text-decoration:none;
}
 
 </style>   
</head>

<body>
<!--
	<p style="width:400px;height:100px;border:solid 1px #e0e0e0;">
	
	</p>
-->

    <!--tabs示例-->
    <p id="mytabs">
        <!--选项卡区域-->
        <ul>
            <li><a href="#tabs1">选项1</a></li>
            <li><a href="#tabs2">选项2</a></li>
            <li><a href="#tabs3">选项3</a></li>
        </ul>
        <!--面板区域-->
        <p id="tabs1">11111</p>
        <p id="tabs2">22222</p>
        <p id="tabs3">33333</p>
    </p>
    
<script lang="javascript">
(function ($) {
    $.fn.tabs = function (options) {
    	var me = this;
    
		//使用鼠标移动触发,亦可通过click方式触发页面切换
        var defualts = { switchingMode: "mousemove" };

		//融合配置项
        var opts = $.extend({}, defualts, options);

		//DOM容器对象,类似MX框架中的$e
        var $e = $(this);
        
        //选中的TAB页索引
        var selectedIndex = 0;
        
        //TAB列表
        var $lis;

		//PAGE容器
		var aPages = [];


		//初始化方法
		me.init = function(){
		
			//给容器设置样式类
	        $e.addClass("tabsp");	 
	        
	        $lis = $("ul li", $e);
	        
	        //设置TAB头的选中和非选中样式
	        $lis.each(function(i, dom){
	        	if(i==0){
	        		$(this).addClass("tabsSeletedLi")
	        	}else{
	        		$(this).addClass("tabsUnSeletedLi");
	        	}
	        
	        });
	        
	       	//$("ul li:first", $e).addClass("tabsSeletedLi");
	        //$("ul li", $e).not(":first").addClass("tabsUnSeletedLi");
			//$("p", $e).not(":first").hide();
			
			//TAB pages绑定
			var $pages = $(&#39;p&#39;, $e);
			$pages.each(function(i, dom){
				if(i == 0){
					$(this).show();
				}else{
					$(this).hide();
				}
				
				aPages.push($(this));		
			});
	        
	        
	        
			//绑定事件
	        $lis.bind(opts.switchingMode, function() {
	        	var idx = $lis.index($(this))
	            me.selectPage(idx);
	        });		
		
		}
		

		/**
		 *  选中TAB页
		 *
		 */
		me.selectPage = function(idx){
			if (selectedIndex != idx) {	                
                $lis.eq(selectedIndex).removeClass("tabsSeletedLi").addClass("tabsUnSeletedLi");
                $lis.eq(idx).removeClass("tabsUnSeletedLi").addClass("tabsSeletedLi");
                
                aPages[selectedIndex].hide();
	            aPages[idx].show();
                selectedIndex = idx;
            };
		}
        
        
        me.showMsg = function(){
        	alert(&#39;WAHAHA!&#39;);
        }
        
		//自动执行初始化函数
		me.init();
		
		//返回函数对象
		return this;
    };
})(jQuery);

</script>   

<script type="text/javascript">
/*
    $(function () {
        $("#mytabs").tabs;
    });
*/


	var tab1 =  $("#mytabs").tabs();
	tab1.showMsg();
</script> 
</body>
</html>

Der Endeffekt ist wie im Bild gezeigt:


Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung vollständiger Beispiele der Komponentenentwicklung mit jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn