jquery-ui - jQuery/jQuery UI - $ ("a").live ("click", ...) 不适用于选项卡

标签 jquery-ui jquery-ui-tabs jquery jquery-click-event

所以我有一些 jQuery UI 选项卡。源码如下:

HTML:

<div class="tabs">
    <ul>
        <li><a href="#ranges">Ranges</a></li>
        <li><a href="#collections">Collections</a></li>
        <li><a href="#designs">Designs</a></li>
    </ul>
    <div id="ranges"></div>
    <div id="collections"></div>
    <div id="designs"></div>
</div>

jQuery:

$(document).ready(function() {
    $(".tabs").tabs();
});

我的问题是,我试图让每个选项卡在单击相关链接时将页面加载到内容面板中。首先,我只是尝试在单击链接时设置所有面板的 html。从下面的代码来看,如果我使用方法 1,它适用于所有链接。但是,如果我使用方法 2,则不会 - 但用于选项卡中的链接(即您单击以选择选项卡的标签)。

方法1(始终适用于所有链接,但不适用于调用此方法后添加的链接):

$("a").click(function () {
    $("#ranges, #collections, #designs").html("clicked");
});

方法 2(适用于所有未“制表”的链接):

$("a").live("click", function () {
    $("#ranges, #collections, #designs").html("clicked");
});

有谁知道为什么会这样?我真的很想让方法 2 正常工作,因为很可能有一些链接需要我添加点击事件,这些事件是在页面最初加载后添加的。

提前致谢,

理查德

PS 是的,对 .live.click 的函数调用都在 $(document).ready() 函数中,之前有人说这可能是问题所在 - 否则它根本无法工作..

编辑:

我提出的解决方案涉及 anchor (data-url)中的额外属性和以下代码(如果无法加载页面,则输出 404 未找到错误)。我的目标是在接下来的几周/几个月内扩展它,使其变得更加强大。

$(".tabs").tabs({
    select: function (event, ui) {
       $(ui.panel).load($(ui.tab).attr("data-url"), function (responseText, textStatus, XMLHttpRequest) {
           switch (XMLHttpRequest.status) {
               case 200: break;
               case 404:
                   $(ui.panel).html("<p>The requested page (" + $(ui.tab).attr("data-url") + ") could not be found.</p>");
                   break;
               default:
                   $(ui.panel).html("<p title='Status: " + XMLHttpRequest.status + "; " + XMLHttpRequest.statusText + "'>An unknown error has occurred.</p>");
                   break;
           };
       });
   }
});

最佳答案

我不知道我是否理解您的目的,但基本上您想在单击选项卡后执行某些操作? Here's用于设置用于选择选项卡的回调函数的文档。

编辑:不知道该链接是否正常工作,您想查看“事件”下的选择。但基本上是:

$("#tabs").tabs({
    select: function(event, ui) { ... }
});

其中 ui 包含有关所单击的选项卡的信息。

关于jquery-ui - jQuery/jQuery UI - $ ("a").live ("click", ...) 不适用于选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825492/

相关文章:

javascript - JavaScript中有没有一种方法可以将字符串+变量用作变量

javascript - SlideUp 和 SlideDown jQuery

javascript - JQuery UI 选项卡未正确显示 - Internet Explorer

javascript - console.log 不显示 js 值

javascript - 为什么我的 .infobox 在放大或缩小时没有调整到父级?

javascript - jQuery - 获取可排序列表的索引

jquery - 点击 jquery ui 选项卡中选项卡的链接

jquery - UL 菜单显示在 jQuery UI 选项卡和图像后面

jquery - 在加载的 html 片段内的选择框上创建一个change()事件(jQuery)

javascript - 从对话框附加 html 后,JqueryUI DateTimePicker 按钮停止工作