Jquery 如何编辑引导选项卡文本,而不将其设置为当前并正常工作?
我有正在动态创建的选项卡,我需要能够编辑这些选项卡中的任何文本,我可以这样做。但是,我遇到了一些需要添加的更改,即可以通过ctrl+click编辑选项卡的文本(我已经这样做了),但不能将选项卡设置为当前选项卡。 例如,我有5个选项卡,第一个选项卡处于活动状态,我想在不中断当前活动选项卡的情况下编辑选项卡3,方法是按住ctrl键并单击,编辑完成后第一个选项卡仍处于活动状态 我有两个不同的事件发生,一个是选项卡的实际点击事件Jquery 如何编辑引导选项卡文本,而不将其设置为当前并正常工作?,jquery,twitter-bootstrap-3,Jquery,Twitter Bootstrap 3,我有正在动态创建的选项卡,我需要能够编辑这些选项卡中的任何文本,我可以这样做。但是,我遇到了一些需要添加的更改,即可以通过ctrl+click编辑选项卡的文本(我已经这样做了),但不能将选项卡设置为当前选项卡。 例如,我有5个选项卡,第一个选项卡处于活动状态,我想在不中断当前活动选项卡的情况下编辑选项卡3,方法是按住ctrl键并单击,编辑完成后第一个选项卡仍处于活动状态 我有两个不同的事件发生,一个是选项卡的实际点击事件 $('body').on('shown.bs.tab', 'a[data-
$('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
if ($('#TabEditorWrapper').hasClass("show-tab-editor")) {
$('#TabEditorWrapper').removeClass("show-tab-editor");
$('#SiteOverlay').css('display', 'none');
}
...
$("#List li").addClass('not-active');
});
下面是我在按住ctrl键并单击其他选项卡时用来进行编辑的代码(是的,我知道我已将此设置为单击事件)
在不知道您的html的情况下,我的猜测是,如果在单击事件之前首先找到当前处于活动状态的选项卡。如果该选项卡不是当前选项卡,请从正在编辑的选项卡中删除“活动”类,并将其重置为原始类 问题是,一旦您单击该选项卡,并触发
click
事件,则获取上一个活动选项卡已为时过晚,因为它已被单击,因此您必须先获取当前活动选项卡,然后才能继续。您可以在页面加载时创建一个事件来获取当前活动选项卡
$(document).ready( function() {
$('.nav-link').each( function() {
if ($(this).hasClass("active")) {
var og_active_tab_location = $(this);
}
})
})
现在,您可以告诉单击事件先删除类active
,然后将og_选项卡标记为active
。在添加类之前,必须先删除该类,因为如果您正在编辑的选项卡与原始选项卡相同,则活动类将被删除
FYI.nav link
位于.nav item
内,是应用活动的类的地方,因此您要处理子类()
$(document).ready( function() {
$('.nav-link').each( function() {
if ($(this).hasClass("active")) {
var og_active_tab_location = $(this);
}
})
})
$(document).on('click', '#List > .nav-item', function (e) {
$(this).children('.nav-link').removeClass('active');
og_active_tab_location.addClass('active');
if (e.ctrlKey) {
$(this).find('input').toggle()
.val($(this)
.find('a').html()).focus();
$(this).find('a').toggle();
oldAreaName = $(this).find("a").text();
currentAreaID = parseInt($(this).find("a").data('areaid'));
}
});