0

不是全职的 jQuery 或 Javascript 开发人员,如果是愚蠢的问题,我很抱歉。我想我需要像 live 函数这样的东西来交换我所做的类的交换来处理哪个值与选择器相关联。

我基本上有这样的标记:

禁用:

<span id="enable-1695" data-id="1695" class="unenable-item">unenable</span>

用于启用:

<span id="enable-1695" data-id="1695" class="enable-item">enable</span>

单击 unenable 后,我想使用 toggleClass 更新到 enable-item。此外,我需要选择器将运行时更新为这些新值。我认为这曾经是通过 live 方法发生的。我将如何实现这一目标。我目前正在手动执行此操作,但 Javascript 运行时未正确更新事件处理。

我将使用什么 javascript 来确保它正常工作?

任何帮助表示赞赏。

谢谢

4

1 回答 1

0

首先,也许“禁用”在这里可能是一个更好的词选择,但我们不是在这里挑剔语法......

我假设当您单击“未启用”链接时,它应该更改为“启用”链接:

$('.unenable-item').live('click', function () {
    $(this)
        .removeClass('unenable-item')
        .addClass('enable-item')
        .text('enable');
    doSomethingWith($(this).data('id'));
});
$('.enable-item').live('click', function () {
    // the inverse of the above
});

在这里,我使用了livekinda-sorta 类似的函数.on或其已弃用的 alias .bind,只是它实际上并未将事件处理程序附加到选择器选择的对象上。相反,它将处理程序附加到文档,并且每当单击任何内容时,它都会检查选择器以查看它是否匹配。您还可以.delegate用于更有针对性的匹配。文档中存在对这些事情的更好解释(链接)。

于 2012-04-10T22:46:58.533 回答