不是全职jQuery也不是Javascript dev如果愚蠢的问题那么抱歉。我认为我需要类似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>
我想在点击unnable后使用toggleClass更新为enable-item。此外,我需要选择器将运行时更新为这些新值。我认为这曾经通过live方法发生。我怎么做到这一点。我目前正在手动执行此操作,但Javascript运行时不会正确更新事件处理。
我会使用哪些javascript来确保其正常工作?
感谢任何帮助。
THX
答案 0 :(得分: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
});
在这里,我使用了live
函数,有点类似于.on
或其弃用的别名.bind
,除了它实际上没有将事件处理程序附加到所选对象由选择器。相反,它会将一个处理程序附加到文档中,只要点击任何内容,它就会检查选择器然后查看它是否匹配。您还可以使用.delegate
进行更多目标匹配。文档(链接)中存在对这些内容的更好解释。