从jQuery的UI选项卡获取目标URL(Getting Target URL from jQuer

2019-07-04 04:18发布

我工作的一个项目,大量使用jQuery的标签和阿贾克斯。 将数据加载到所述翼片本身很简单,但需要在选项卡中的数据,以由一个选择框,它位于凸片格外进行过滤。

这里是我的问题开始的地方。 比方说,我的标签,使一个Ajax调用URL“tab1.html。” jQuery的标签改变这个目标变成散列值类似“#用户界面的选项卡-10,”但我可以通过下面的代码获得的原始网址:

    $("#tabs").tabs({
        select: function(event,ui) {
            var url = $.data(ui.tab, 'load.tabs');
            ...do stuff with url
        }
    });

但我似乎无法访问此事件外呼的ui.tab对象。 所以我的选择框更改事件最终看起来是这样的:

var urls = {
    0 : "tab1.html",
    1 : "tab2.html",
    2 : "tab3.html"
}

$('#selectBox').change(function(){
    var tabs = $("#tabs").tabs();
    var id = $('#selectBox').attr("selectedIndex");
    var selectedTab = tabs("option", "selected");
    var newUrl = urls[selectedTab] + "?id=" + id;
    tabs("url", selectedTab, newUrl);
    tabs("load", selectedTab);
});

我的问题是哈希映射。 我并不需要它,它复制的信息,我已经编入标签div的本身。

<div id="tabs">
    <ul>
        <li><a href="tab1.html">tab1</a></li>
        <li><a href="tab2.html">tab2</a></li>
        <li><a href="tab3.html">tab3</a></li>
    </ul>
</div>

我已经耗尽了的文档,并在Firebug DOM树无济于事。 我如何可以从标签的事件之外取得的HREF任何想法?

我使用jQuery UI的版本1.7.2。 Muchos格拉西亚斯提前。 你们是最棒的。

Answer 1:

下面将写出来的HREF的控制台。

演示,提醒了ajax标签HREF的位置

$('#tabs a').each(function() {
   var href = $.data(this, 'href.tabs');
   console.log(href);
})


Answer 2:

var links = $("#thetabs > ul").find("li a");
var url = $.data(links[tabnum], 'href.tabs');

tabnum是标签的你想从URL中从零开始的索引



Answer 3:

您还可以设置标题属性中的选项卡链接。

<div id="tabs">
    <ul>
        <li><a href="tab1.html" title="First tab contents">tab1</a></li>
        <li><a href="tab2.html" title="Second tab contents">tab2</a></li>
        <li><a href="tab3.html" title="Third tab contents">tab3</a></li>
    </ul>
</div>

有了这个,jQueryUI的将创建的div基于标题的ID,用下划线代替空格,因此,你应该能够访问使用类似的div

$("#First_tab_contents")

干杯!



文章来源: Getting Target URL from jQuery-UI Tabs