【问题标题】:add tabs with dynamic content添加具有动态内容的选项卡
【发布时间】:2013-04-05 15:55:55
【问题描述】:

嗨,当我单击列表选项时,我想添加具有动态内容的新选项卡。内容通过给定的 href url 获取。

<script type="text/javascript" src="http://www.jankoatwarpspeed.com/wp-content/uploads/examples/dynamic_tabs/jquery-1.4.min.js" ></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#documents a").click(function() {
            addTab($(this));
        });

        $('#tabs a.tab').live('click', function() {
            // Get the tab name
            var contentname = $(this).attr("id") + "_content";

            // hide all other tabs
            $("#content p").hide();
            $("#tabs li").removeClass("current");

            // show current tab
            $("#" + contentname).show();
            $(this).parent().addClass("current");
        });

        $('#tabs a.remove').live('click', function() {
            // Get the tab name
            var tabid = $(this).parent().find(".tab").attr("id");

            // remove tab and related content
            var contentname = tabid + "_content";
            $("#" + contentname).remove();
            $(this).parent().remove();

            // if there is no current tab and if there are still tabs left, show the first one
            if ($("#tabs li.current").length == 0 && $("#tabs li").length > 0) {

                // find the first tab    
                var firsttab = $("#tabs li:first-child");
                firsttab.addClass("current");

                // get its link name and show related content
                var firsttabid = $(firsttab).find("a.tab").attr("id");
                $("#" + firsttabid + "_content").show();
            }
        });
    });
    function addTab(link) {
        // If tab already exist in the list, return
        if ($("#" + $(link).attr("rel")).length != 0)
            return;

        // hide other tabs
        $("#tabs li").removeClass("current");
        $("#content p").hide();

        // add new tab and related content
        $("#tabs").append("<li class='current'><a class='tab' id='" +
            $(link).attr("rel") + "' href='#'>" + $(link).html() + 
            "</a><a href='#' class='remove'>x</a></li>");

        $("#content").append("<p id='" + $(link).attr("rel") + "_content'>" + 
            $(link).attr("href") + "</p>");

        // set the newly added tab as current
        $("#" + $(link).attr("rel") + "_content").show();
    }
</script>

这是我的 html 代码

<div id="main">
<div id="doclist">
    <h2>Documents</h2>
    <ul id="documents">
        <li><a href="#" rel="Document1" title="This is the content of Document1">Document1</a></li>
        <li><a href="http://www.dynamicdrive.com" rel="Document2" title="This is the content of Document2">Document2</a></li>
        <li><a href="http://www.dynamicdrive.com" rel="Document3" title="This is the content of Document3">Document3</a></li>
        <li><a href="http://www.dynamicdrive.com" rel="Document4" title="This is the content of Document4">Document4</a></li>
        <li><a href="http://www.dynamicdrive.com" rel="Document5" title="This is the content of Document5">Document5</a></li>
    </ul>
</div>
<div id="wrapper">
    <ul id="tabs">
        <!-- Tabs go here -->
    </ul>
    <div id="content">
        <!-- Tab content goes here -->
    </div>
</div>
</div>
<div id="Document1" style="display:none;">anvdsanvidsnvsidvnsdovnsdoivnsdovsdovnsovsvsmvpsmvlksdvsmdkvmsdkvmsvsd</div>

它正在工作,但我不想这样。我想显示我在href中提到的内容。 请帮帮我,我该怎么做。

【问题讨论】:

  • 你考虑过使用ajax从url中获取动态内容吗?
  • 是的。但我的主要目的是显示我提到 url 数据的数据。如果你建议任何新的来获得像 dis
  • 请查看更新后的答案。

标签: jquery tabs href


【解决方案1】:

这基本上取决于您从 url 收到的数据类型是什么类型的请求。假设您只是想显示一个 HTML 页面,您可以按如下方式附加 iframe。

HTML

<div class="dynamic_content">
    <ul class='url_list'>
        <li><a href='#' data="http://www.example.com">Load Example</a></li>
    </ul>
</div>

jQuery

$(document).ready(function(){
    $('ul.url_list > li > a').click(function(){
        var me = $(this);
        var url = me.attr('data'); 
        $('.dynamic_content > iframe').remove();
        $('.dynamic_content').append('<iframe src="' + url + '" width="100%" height="300px"></iframe>');
    });
});

另外,请注意我没有测试上面的代码。这只是我的想法,因此您可能需要对其进行测试。

更新:

好的,我已经更新并测试了代码。另外,这里是working example (JSFiddle)

更新:

这是更新后的JSFiddle

【讨论】:

  • 我只测试了 nw 但它没有来。
  • @munji_rkt:好的,我已经更新并测试了代码。请检查更新的答案。此外,最后您可以查看一个工作示例。
  • 是的,非常感谢 Amyth,它工作正常。 link 只需检查 dis。我不想再次重新加载。当我第一次单击 dat 时间时,只需加载并成为单独的任务。当我单击 juery 时,剂量列表选项显示在框架底部,它显示 jquery 内容。当我单击示例时,它显示 example.com 内容。我必须将剂量选项放在框架的底部。像 windows 任务.. 感谢 Amyth...
  • 神话see this。我们可以像 dis 一样显示吗?看看有标签是如何工作的。我想在框架底部显示像 dat 这样的标签。
  • 请检查我在哪里做错了tabs
猜你喜欢
  • 2018-07-18
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多