1. 程式人生 > >JQ選項卡(面向對象)

JQ選項卡(面向對象)

else color round 面向 mpat ble after view div2

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <
title>JQ選項卡</title> <style> #div1 div, #div2 div, #div3 div, #div4 div { width: 200px; height: 200px; border: 1px #000 solid; display: none; } .active
{ background: red; } </style> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </head> <body> <div id="div1"> <input class="active" type="button" value="1"> <
input type="button" value="2"> <input type="button" value="3"> <div style="display:block">111111</div> <div>222222</div> <div>333333</div> </div> <div id="div2"> <input class="active" type="button" value="1"> <input type="button" value="2"> <input type="button" value="3"> <div style="display:block">111111</div> <div>222222</div> <div>333333</div> </div> <div id="div3"> <input class="active" type="button" value="1"> <input type="button" value="2"> <input type="button" value="3"> <div style="display:block">111111</div> <div>222222</div> <div>333333</div> </div> <div id="div4"> <input class="active" type="button" value="1"> <input type="button" value="2"> <input type="button" value="3"> <div style="display:block">111111</div> <div>222222</div> <div>333333</div> </div> <input type="button" value="點擊" id="input1"> </body> <script type="text/javascript"> /** title : 基於JQ的選項卡組件 Options : event delay Methods : nowSel() getContent() Events : beforeClick afterClick **/ //jQ中的主動觸發 : trigger() $(function() { var t1 = new Tab(); t1.init(div1); var t2 = new Tab(); t2.init(div2, { event: mouseover }); var t3 = new Tab(); t3.init(div3, { event: mouseover, delay: 200 }); var t4 = new Tab(); t4.init(div4); t4.nowSel(2); $(#input1).click(function() { alert(t4.getContent()); }); $(t4).on(beforeClick, function() { alert(t4.getContent()); }); $(t4).on(afterClick, function() { alert(t4.getContent()); }); }); function Tab() { this.oParent = null; this.oInput = null; this.oDiv = null; this.isNow = 0; this.settings = { //默認參數 event: "click", delay: 0 }; }; Tab.prototype.init = function(oParent, opt) { $.extend(true, this.settings, opt); this.oParent = $("#" + oParent); this.aInput = this.oParent.find("input"); this.aDiv = this.oParent.find("div"); this.change(); }; Tab.prototype.change = function() { var This = this; var time = null; this.aInput.on(this.settings.event, function() { var _this = this; if(This.settings.event == "mouseover" && This.settings.delay) { time = setTimeout(function() { show(_this); }, This.settings.delay); } else { show(_this); } }).mouseout(function() { clearTimeout(time); }); function show(obj) { $(This).trigger("beforeClick"); This.aInput.attr("class", ""); This.aDiv.css("display", "none"); $(obj).attr("class", "active"); This.aDiv.eq($(obj).index()).css("display", "block"); This.iNow = $(obj).index(); $(This).trigger("afterClick"); }; }; Tab.prototype.nowSel = function(index) { this.aInput.attr(class, ‘‘); this.aDiv.css(display, none); this.aInput.eq(index).attr(class, active); this.aDiv.eq(index).css(display, block); this.iNow = index; }; Tab.prototype.getContent = function() { return this.aDiv.eq(this.iNow).html(); }; </script> </html>

JQ選項卡(面向對象)