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

jQuery UI Tabs: Load link in tab / Reload entire page

本文关键字:加载 选项 新加载 UI jQuery 链接      更新时间:2023-09-26

我的页面使用的是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>

我想通了!我没有触发"点击",而是将其更改为".tablelink点击",这允许我将此类添加到我想在选项卡中打开的链接中。

这与我想要的相反,但我会接受:)

<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>

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