时间:2021-05-25
控件这东西网上找的多少都有些功能不如意的,只能自己动手来写了。
Tabs插件很多人都需要用到,网上也有很多的例子,但是不是风格不搭调就是用着不习惯(自己写的不一定比别人的好但用着顺手In love)
下面直接贴代码,不喜勿喷:
(function ($) { 'use strict'; var defaults = { type: "iframe", onchanged: null, style: { header_panel: "tab-headers", content_panel: "tab-contents", header: "tab-header", content: "tab-content", selected: "selected", icon_base: "fa", icon_close: "fa-close" } } var methods = { init: function (options) { return this.each(function () { var $this = $(this); if (!$this.hasClass("tw.tabs")) { $this.addClass("tabs"); } var settings = $this.data('tw.tabs'); if (typeof (settings) == 'undefined') { settings = $.extend({}, defaults, options); $this.data('tw.tabs', settings); } else { settings = $.extend({}, settings, options); $this.data('tw.tabs', settings); } $this.empty(); $this.append($("<ul class='" + settings.style.header_panel + "'></ul>")); $this.append($("<div class='" + settings.style.content_panel + "'></div>")); if (settings.data) { if (typeof settings.data === 'string') { settings.data = $.parseJSON(settings.data); } $.each(settings.data, function () { $this.tabs("add", this); }); } }); }, add: function (tab) { var $this = $(this); var settings = $this.data("tw.tabs"); var headers = $this.find("." + settings.style.header_panel); var contents = $this.find("." + settings.style.content_panel); if (headers.find("[data-tab='" + tab.id + "']").length == 0) { var header = $("<li class='" + settings.style.header + "' data-tab='" + tab.id + "'>" + "<i class='" + settings.style.icon_base + "" + tab.icon + "'></i>" + "<span class='tab-title'>" + tab.name + "</span></li>"); if (tab.canClose) { var close = $("<i class='" + settings.style.icon_base + "" + settings.style.icon_close + "'></i>"); close.click(function () { $this.tabs("remove", tab.id); }); header.append(close); } header.data("tw.tab", tab); header.click(function () { $this.tabs("select", tab); }); headers.append(header); var content = $("<div class='" + settings.style.content + "' data-tab='" + tab.id + "'></div>"); if (settings.type == "iframe") { content.append("<iframe src='" + tab.url + "?target_id=" + tab.id + "'></iframe>"); } else if (settings.type == "ajax"){ $.ajax({ url: tab.url, type: "post", async: false, data: { target_id: tab.id }, success: function (result) { content.html(result); } }); } else { content.html(tab.content); } contents.append(content); if (tab.selected) { $this.tabs("select", tab); } } else { $this.tabs("select", tab); } }, select: function (tab) { var $this = $(this); var settings = $this.data("tw.tabs"); $this.find("." + settings.style.selected).removeClass(settings.style.selected); if (typeof tab == "object") { $this.find("[data-tab='" + tab.id + "']").addClass(settings.style.selected); } else { $this.find("." + settings.style.header).eq(tab).addClass(settings.style.selected); $this.find("." + settings.style.content).eq(tab).addClass(settings.style.selected); } if (settings.onchanged) { settings.onchanged(tab); } }, refresh: function () { var $this = $(this); var selected = $this.find("." + settings.style.selected); var tab = $this.find("." + settings.style.header).data("tw.tab"); if (settings.type == "iframe") { selected.find("iframe").attr('src', tab.url + "?target_id=" + tab.id); } else if (settings.type == "ajax") { $.ajax({ url: tab.url, type: "post", async: false, data: { target_id: tab.id }, success: function (result) { content.html(result); } }); } else { content.html(tab.content); } }, remove: function (id) { var $this = $(this); var settings = $this.data("tw.tabs"); var tab = $this.find("[data-tab='" + id + "']"); if (tab.find("." + settings.style.selected)) { var index = tab.eq(0).index() - 1; $this.tabs("select", index); } tab.remove(); }, destroy: function (options) { return $(this).each(function () { var $this = $(this); $this.removeData('tabs'); }); } } $.fn.tabs = function () { var method = arguments[0]; var args = arguments; if (typeof (method) == 'object' || !method) { method = methods.init; } else if (methods[method]) { method = methods[method]; args = $.makeArray(arguments).slice(1); } else { $.error('Method ' + method + ' does not exist on tw.tabs'); return this; } return method.apply(this, args); }})(jQuery);本文已被整理到了jquery选项卡操作方法汇总、大家还可以点击javascript选项卡操作方法汇总进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在实现Angularjs实现mvvm式的选项卡之前,先搬出我们常用的jquery实现。1、jquery实现简单粗暴的选项卡效果varnav=$(".tabs")
本文为大家分享了微信小程序实现tabs选项卡功能的具体代码,供大家参考,具体内容如下一个自定义组件由jsonwxmlwxssjs4个文件组成。要编写一个自定义组
本节内容:jquery实现自动切换选项卡。代码:复制代码代码如下:自动切换tabs选项卡-www.jb51.netcode{font-family:"Couri
本文实例为大家分享了JavaScript实现tabs切换功能的具体代码,供大家参考,具体内容如下自定义插件实现tabs切换功能这是HTML代码:#tabs>di
这是一个可切换tab选项卡的自定义页面,与js/jq切换不同的是,它每个选项卡有独立的url。之前的帖子里写过自定义可diy页面的方法,这个也是据此而来。完整的