jQuery UI选项卡:在选项卡中加载链接/重新加载整个页面

时间:2013-11-20 01:04:22

标签: javascript jquery jquery-ui tabs

我正在为我的页面使用jQuery UI(1.10.2)选项卡。我使用此代码加载当前选项卡中的所有链接。

<script type="text/javascript">
$(function() {
    $("#assetinfo_tabs").tabs({
        ajaxOptions: {
            error: function( xhr, status, index, anchor ) {
                $( anchor.hash ).html("Error reading content. :(" );
            }
        },
        spinner: "<em>Loading</em> <img src='images/ajax-loader.gif'>",
        load: function(event, ui) {
        $(ui.panel).delegate('a', 'click', function(event) {
            $(ui.panel).load(this.href);
                    event.preventDefault();
            });
        }
    });
});
</script>

现在我希望能够添加一些“标记”链接的方法,它们会在点击时重新加载整个页面,而不是仅仅在标签内加载。我认为应该可以通过向链接添加一个类来实现,并且只需要使用上面的加载段来忽略该类的所有链接,但我无法使其工作。

<script type="text/javascript">
$(function() {
    $("#assetinfo_tabs").tabs({
        ajaxOptions: {
            error: function( xhr, status, index, anchor ) {
                $( anchor.hash ).html("Error reading content. :(" );
            }
        },
        spinner: "<em>Loading</em> <img src='images/ajax-loader.gif'>",
        load: function(event, ui) {
            $(ui.panel).delegate('a', 'click', function(event) {
                if (!$(this).hasClass('reload')) {
                    $(ui.panel).load(this.href);
                        event.preventDefault();
                }
            });
        }
    });
});    
</script>

2 个答案:

答案 0 :(得分:1)

我明白了!我没有触发“点击”,而是将其更改为“.tablink click”,这允许我将此类添加到我想要在标签中打开的链接。

这与我的目标相反,但我会接受它:)

<script type="text/javascript">
$(function() {
    $("#assetinfo_tabs").tabs({
        ajaxOptions: {
            error: function( xhr, status, index, anchor ) {
                $( anchor.hash ).html("Error reading content. :(" );
            }
        },
        spinner: "<em>Loading</em> <img src='images/ajax-loader.gif'>",
        load: function(event, ui) {
            $(ui.panel).delegate('.tablink', 'click', function(event) {
                $(ui.panel).load(this.href);
                    event.preventDefault();
            });
        }
    });
});
</script>

答案 1 :(得分:0)

我会说它不起作用,因为“$(this)”实际上指的是事件,而不是标签。尝试使用ui.index获取单击选项卡的索引,抓取该对象并检查它是否具有相关的类。