웹 프론트엔드 JS 튜토리얼 DIY jquery 플러그인 - 탭 라벨 전환 구현 code_jquery

DIY jquery 플러그인 - 탭 라벨 전환 구현 code_jquery

May 16, 2016 pm 06:14 PM
tabs 스위치

jquery 탭을 DIY하는 이유
저는 jquery를 사용한 지 2~3개월 정도 되었지만 플러그인을 작성한 적이 없습니다. 다만 최근에 시간이 많이 남아서 프로젝트에서 늘 싫었던 기존 탭을 변형해 볼 예정입니다(기존 탭은 컨트롤로 만들 수 없고, 복사 및 과거 코드가 너무 많습니다).
jQuery만큼 강력한 라이브러리에는 탭 플러그인이 없으면 불가능하다고 생각해서 빠르게 검색해봤습니다. 하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하! jQuery 탭! 은근히 기쁜 마음이 들어서 얼른 로드해서 사용하기 시작했어요. 하지만 사용법을 확인한 결과, 기존 프로젝트에는 적합하지 않다는 사실을 발견했습니다. 각 탭은 iframe을 사용하여 삽입된 전체 페이지에 해당합니다. jQuery 탭은 iframe을 지원하지 않는 것 같습니다. 그럼 개조해 볼까요? 코드를 처음부터 끝까지 공부해야 하는데 머리가 아프네요! 연습을 위해 직접 작성하는 것이 더 좋습니다. 하하. 그냥 해보면 나의 첫 번째 jQuery 플러그인이 탄생했다.

코드

코드 복사 코드는 다음과 같습니다.

/*
* jquery.tab
* 작성자: Winter Grass
* 날짜: 2010/12/07
*/
jQuery.fn.tab = function(options) {
var 설정 =
{
activeTabClass: "tab-selected",
defaultTabClass: "tab-default",
tabContainerClass: "tabContainer",
tabPanelCls: "tabPanel",
mouseoverTabClass: null,
hiddenTabClass: 'tab-hide',
tabPanel: null,
selectHandler: null,
iframeIdPrex: 'iframe_'
}

if(옵션) {
jQuery.extend(설정, 옵션);
}
//#region 공개 이벤트
$.fn.setActiveTab = function(tabIndex) {
if (tabIndex) {
return this.each(function() {
this.setActiveTab(tabIndex);
})
}
}
$.fn.getFrameByTabId = function(tabId) {
if (tabId) {
var iframeId = settings.iframeIdPrex tabId;
returnframes[iframeId];
}
return null
//#endregion 공개 이벤트
return this.each(function() {
var ts = this;
var $tabContainer = $(ts);
ts.activeTab = null;
ts.tabPanelId = null;
ts.selectedTab = null;
ts.selectedIndex = 0;
ts.iframeId = null;

//#region 'private' 메소드
this.setActiveTab = function( tabIndex) {
if (typeof (tabIndex) != "number") {
return;
}

var selectedTab = $('li:visible', $tabContainer).eq (tabIndex );
if (selectedTab.length == 0) {
return;
}
//활성 탭 클릭
if (ts.iframeId == settings.iframeIdPrex selectedTab. attr( 'id')) {
return;
}
else {
if (ts.iframeId != null) {
//$(frames[activeTabId]).hide( );
$("iframe").hide();
}
}
$('.' settings.activeTabClass, $tabContainer).removeClass(settings.activeTabClass)
ts.activeTab = selectedTab;
ts.activeTab.addClass(settings.activeTabClass);
var target = ts.activeTab.attr('target')
if (typeof (target) != 'string ') {
return;
}
ts.iframeId = settings.iframeIdPrex selectedTab.attr('id')
if ($('#' ts.iframeId).length == 0 ) {
var iframe = $('')
iframe.attr('id', ts.iframeId)
.attr('src', target)
.css({ 너비: '100%', 높이: '100%' })
iframe.appendTo(settings.tabPanel)
}
else {
$(' #' ts.iframeId).show();
}
};
varinitialTabs = function() {
$tabContainer.addClass(settings.tabContainerClass)
$(settings. tabPanel) .addClass(settings.tabPanelCls);
var stopFloatDiv = $('
')
stopFloatDiv.css({clear: 'both', height: '0px' })
.insertAfter($tabContainer);
$('li', $tabContainer).each(function(i) {
var $tab = $(this);
var $link = $ ('a', $tab);
var href = $link.attr('href')
$link.attr('href', "#"); attr( '대상', href)
.addClass(settings.defaultTabClass)
.click(function(e) {
ts.selectedTab = $tab;
ts.selectedIndex = i;
if (typeof (settings.selectHandler) == "function") {
settings.selectHandler();
}
else {
ts.setActiveTab(i)
; >} )
})
};
//#endregion 'private' 메소드
initialTabs()
ts.setActiveTab(0); //기본값으로 설정 .
})
};


데모


코드 복사
다음과 같습니다:
스크린샷:

설명
매개변수(선택) -- 탭 스타일, 트리거 탭 이벤트 등을 사용자 정의할 수 있습니다. 기본값은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
var settings =
{
activeTabClass: "tab-selected", //활성 탭용 CSS
defaultTabClass: "tab-default", //비활성 탭용 CSS
tabContainerClass: "tabContainer", / 탭 컨테이너의 경우 /css
tabPanelCls: "tabPanel", //iframe이 포함된 패널의 경우 css
mouseoverTabClass: null, //탭 위에 마우스를 올리면 css
hiddenTabClass: 'tab-hide ', //숨겨진 탭에 대한 CSS
tabPanelId: null, //iframe 포함에 사용되는 패널 ID
selectHandler: null, //사용자가 탭 전환 시 이벤트 핸들러
iframeIdPrex: 'iframe_' //iframe용 ID prex, 탭 ID로 iframe을 가져오는 데 유용합니다.


공개 메소드 -- setActiveTab(tabIndex) && getFrameByTabId(tabId)


setAcitveTab: 탭 인덱스로 활성 탭을 설정합니다.
$(' #tabs').setActiveTab(1); //두 번째 탭을 활성화합니다.
getFrameByTabId: 특정 탭에 대한 프레임을 가져옵니다.
$('#tabs').getFrameByTabId("tabHome");


기타
1. 이 탭은 모든 크기와 호환되도록 3개의 DOM 요소
  • 를 사용합니다. 탭 텍스트에서는 세 장의 그림이 배경으로 사용되었습니다. li를 사용하여 왼쪽에 둥근 모서리 이미지를 표시하고, a를 사용하여 오른쪽에 둥근 모서리를 표시하고, 스팬을 사용하여 가운데 배경을 타일링했습니다. 실제로 두 장의 사진을 사용하여 왼쪽 모서리가 둥글고 오른쪽 모서리가 둥근 긴 배경 그림을 만들어도 달성할 수 있습니다. 그러나 둥근 모서리를 위해 이러한 무의미한 요소를 어떻게 추가하더라도 항상 사람들을 불행하게 만듭니다. CSS3의 둥근 모서리 기술과 하나의 DOM 요소에 여러 배경 이미지를 설정하는 기능이 잘 지원되기를 진심으로 바랍니다.
    2. 이 플러그인은 특정 탭 페이지가 확인에 실패하고 전환을 허용하지 않는 등 특별한 요구 사항을 지원하기 위해 사용자 정의 전환 탭 이벤트(selectHandler)를 지원합니다. 사용법:


    $('#tabs') .tab( {
    tabPanel: '#tabPanel',
    selectHandler: function() {
    switchTab(); //정의한 함수.
    }
    }); >

    3. 탭 플러그인의 activeTab 및 selectedIndex 속성은 사용자가 탭 전환 이벤트를 사용자 정의하여 탭 관련 정보를 얻을 수 있도록 설계되었으며, 이는 필요에 따라 확장될 수 있습니다. 사용법:


    코드 복사 코드는 다음과 같습니다. $('#tabs') .each( function() {
    var $tabs = this;
    var currentTabId = $tabs.activeTab.attr('id');
    //...
    }


  • 본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    Xiaomi Mi 14Ultra에서 4g와 5g 사이를 전환하는 방법은 무엇입니까? Xiaomi Mi 14Ultra에서 4g와 5g 사이를 전환하는 방법은 무엇입니까? Feb 23, 2024 am 11:49 AM

    Xiaomi 14Ultra는 올해 가장 인기 있는 Xiaomi 모델 중 하나입니다. Xiaomi 14Ultra는 프로세서와 다양한 구성을 업그레이드할 뿐만 아니라 사용자에게 많은 새로운 기능 애플리케이션을 제공합니다. 이는 Xiaomi 14Ultra 휴대폰의 판매에서 확인할 수 있습니다. 많이 사용되는 기능이지만 아직은 모르실 수도 있는 일반적으로 사용되는 기능이 있습니다. 그렇다면 Xiaomi 14Ultra는 어떻게 4g와 5g 사이를 전환합니까? 구체적인 내용을 아래에서 소개해드리겠습니다! Xiaomi 14Ultra에서 4g와 5g 사이를 전환하는 방법은 무엇입니까? 1. 휴대폰의 설정 메뉴를 엽니다. 2. 설정 메뉴에서 '네트워크' 및 '모바일 네트워크' 옵션을 찾아서 선택하세요. 3. 모바일 네트워크 설정에 '기본 네트워크 유형' 옵션이 표시됩니다. 4. 이 옵션을 클릭하거나 선택하면 다음과 같은 내용이 표시됩니다.

    win11 홈 버전에서 프로페셔널 버전으로 전환하기 위한 조작 튜토리얼_win11 홈 버전에서 프로페셔널 버전으로 전환하기 위한 조작 튜토리얼 win11 홈 버전에서 프로페셔널 버전으로 전환하기 위한 조작 튜토리얼_win11 홈 버전에서 프로페셔널 버전으로 전환하기 위한 조작 튜토리얼 Mar 20, 2024 pm 01:58 PM

    Win11 Home Edition을 Win11 Professional Edition으로 변환하는 방법 Win11 시스템은 Home Edition, Professional Edition, Enterprise Edition 등으로 나뉘며 대부분의 Win11 노트북에는 Win11 Home Edition 시스템이 사전 설치되어 있습니다. 오늘은 에디터가 win11 홈버전에서 프로페셔널 버전으로 전환하는 단계를 보여드리겠습니다! 1. 먼저, win11 바탕화면과 속성에서 이 컴퓨터를 마우스 오른쪽 버튼으로 클릭하세요. 2. 제품 키 변경 또는 Windows 업그레이드를 클릭합니다. 3. 입력 후 제품키 변경을 클릭하세요. 4. 활성화 키: 8G7XN-V7YWC-W8RPC-V73KB-YWRDB를 입력하고 다음을 선택합니다. 5. 그러면 성공이 보장되므로 win11 홈 버전을 win11 프로페셔널 버전으로 업그레이드할 수 있습니다.

    Win10 시스템에서 이중 시스템 전환을 구현하는 방법 Win10 시스템에서 이중 시스템 전환을 구현하는 방법 Jan 03, 2024 pm 05:41 PM

    많은 친구들이 Win 시스템을 처음 접했을 때 익숙하지 않을 수 있습니다. 현재 컴퓨터에는 이중 시스템이 있습니다. 이제 두 시스템 사이를 전환하는 자세한 단계를 살펴보겠습니다. 두 시스템 사이. win10 시스템에서 두 시스템 간 전환하는 방법 1. 단축키 전환 1. "win" + "R" 키를 눌러 실행을 엽니다. 2. 실행 상자에 "msconfig"를 입력하고 "확인"을 클릭합니다. 3. 열린 창에서 " 시스템 구성" 인터페이스에서 필요한 시스템을 선택하고 "기본값으로 설정"을 클릭합니다. 완료 후 "다시 시작"을 클릭하면 스위치가 완료됩니다. 방법 2. 부팅 시 스위치 선택 1. 듀얼 시스템이 있는 경우 선택 작업 인터페이스 부팅할 때 나타납니다. 키보드의 위쪽 및 아래쪽 키를 사용하여 시스템을 선택할 수 있습니다.

    Apple 컴퓨터의 이중 시스템 부팅 모드 전환 Apple 컴퓨터의 이중 시스템 부팅 모드 전환 Feb 19, 2024 pm 06:50 PM

    Apple 컴퓨터를 시작할 때 Apple 듀얼 시스템 간을 전환하는 방법 Apple 컴퓨터는 자체 macOS 운영 체제를 실행하는 것 외에도 Windows와 같은 다른 운영 체제를 설치하도록 선택하여 듀얼 시스템 전환을 달성할 수도 있습니다. 그렇다면 부팅할 때 두 시스템 간에 어떻게 전환합니까? 이 문서에서는 Apple 컴퓨터에서 듀얼 시스템 간에 전환하는 방법을 소개합니다. 먼저 듀얼 시스템을 설치하기 전에 Apple 컴퓨터가 듀얼 시스템 전환을 지원하는지 확인해야 합니다. 일반적으로 Apple 컴퓨터는 다음을 기반으로 합니다.

    Excel에서 통합 문서 전환에 바로 가기 키를 사용하는 방법 Excel에서 통합 문서 전환에 바로 가기 키를 사용하는 방법 Mar 20, 2024 pm 01:50 PM

    Excel 소프트웨어를 적용할 때 우리는 일부 작업을 보다 쉽고 빠르게 수행하기 위해 단축키를 사용하는 데 익숙합니다. 때로는 Excel의 여러 테이블 간에 관련 데이터가 있을 때 작업 간에 지속적으로 전환해야 합니다. 빠른 전환 방법을 사용하면 전환에 소요되는 시간을 많이 절약할 수 있어 작업 효율을 크게 높일 수 있습니다. 빠른 전환을 완료하려면 어떤 방법을 사용할 수 있나요? 오늘 편집자는 이에 대해 이야기하겠습니다. 내용은 다음과 같습니다. Excel에서 통합 문서를 전환하기 위해 바로 가기 키를 사용합니다. 1. 먼저 열려 있는 엑셀 표 하단에 여러 개의 통합 문서가 표시됩니다. 아래 그림과 같이 여러 통합 문서 사이를 빠르게 전환해야 합니다. 2. 그런 다음 이동하지 않고 키보드의 Ctrl 키를 누르고 필요한 경우 오른쪽에 있는 작업을 선택합니다.

    win11에서 Alt+Tab을 사용하여 인터페이스를 전환할 수 없습니다. 이유가 무엇입니까? win11에서 Alt+Tab을 사용하여 인터페이스를 전환할 수 없습니다. 이유가 무엇입니까? Jan 02, 2024 am 08:35 AM

    Win11은 사용자가 Alt+Tab 단축키를 사용하여 데스크탑 전환 도구를 불러올 수 있도록 지원하지만 최근 친구가 Win11 Alt+Tab으로 인터페이스를 전환할 수 없는 문제에 직면했습니다. 이유나 해결 방법을 모르겠습니다. win11 alt+tab으로 인터페이스를 전환할 수 없는 이유는 무엇입니까? 답변: 단축키 기능이 비활성화되어 있으므로 해결 방법은 다음과 같습니다. 1. 먼저 키보드에서 "win+r"을 눌러 실행을 엽니다. 2. 그런 다음 "regedit"를 입력하고 Enter를 눌러 그룹 정책을 엽니다. 3. 그런 다음 "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer"를 입력합니다.

    Huawei 휴대폰에서 듀얼 시스템 설정을 전환하는 방법 Huawei 휴대폰에서 듀얼 시스템 설정을 전환하는 방법 Feb 20, 2024 am 10:09 AM

    스마트폰의 급속한 발전과 함께 선도적인 기술 기업인 Huawei는 많은 인기 휴대폰 제품을 출시했습니다. 그 중에서도 화웨이 듀얼 시스템은 많은 사용자들을 설레게 만드는 기능이다. 화웨이 듀얼 시스템을 통해 사용자는 동일한 휴대폰에서 안드로이드와 하모니OS 등 두 가지 운영체제를 동시에 실행할 수 있다. 이 기능을 사용하면 유연성과 편의성이 향상됩니다. 그렇다면 Huawei 듀얼 시스템 간에 설정을 전환하는 방법은 무엇입니까? 함께 알아봅시다. 먼저, Huawei 휴대폰에서 듀얼 시스템 설정으로 전환하기 전에,

    전폭 및 반폭 이해: 전환 기술 살펴보기 전폭 및 반폭 이해: 전환 기술 살펴보기 Mar 25, 2024 pm 01:36 PM

    일상생활에서 우리는 전각과 반각의 문제에 자주 직면하지만, 그 의미와 차이점을 깊이 이해하는 사람은 거의 없습니다. 전각과 반각은 실제로 문자 인코딩 방법의 개념이며 컴퓨터 입력, 편집, 조판 등에 고유한 특수 응용 프로그램이 있습니다. 이 기사에서는 전체 너비와 절반 너비의 차이점, 스위칭 기술 및 실제 응용 프로그램을 자세히 살펴보겠습니다. 우선, 한자 분야에서 전각과 반각의 정의는 전각자가 한 글자 위치를 차지하고, 반각자는 반자 위치를 차지한다는 것이다. 컴퓨터에서는 패스

    See all articles