Javascript 禁用JQuery Ui选项卡键盘导航
我试图在我的站点上禁用JQuery选项卡的键盘导航 我已经尝试了这个问题中列出的所有事情: 但是没有用 我当前的代码是(是的,它看起来很无聊,但我很绝望,我也是JS的笨蛋) 我的网站是(我所指的页面): 链接到调用选项卡函数的JS:Javascript 禁用JQuery Ui选项卡键盘导航,javascript,jquery,jquery-ui,tabs,Javascript,Jquery,Jquery Ui,Tabs,我试图在我的站点上禁用JQuery选项卡的键盘导航 我已经尝试了这个问题中列出的所有事情: 但是没有用 我当前的代码是(是的,它看起来很无聊,但我很绝望,我也是JS的笨蛋) 我的网站是(我所指的页面): 链接到调用选项卡函数的JS: 任何关于我做错了什么的帮助都将不胜感激 我创建了一个JSFIDLE。这是你正在做的工作的变通方法。以下是链接: 修改: $('#tabs').tabs({ activate: function (event, ui) { ui.newTab.
任何关于我做错了什么的帮助都将不胜感激 我创建了一个JSFIDLE。这是你正在做的工作的变通方法。以下是链接: 修改:
$('#tabs').tabs({
activate: function (event, ui) {
ui.newTab.blur();
},
});
$('#tabs a').click(function () {
$(this).blur();
});
根据您的html结构:
$('.wpb_wrapper').tabs({
activate: function (event, ui) {
ui.newTab.blur();
},
});
$('.wpb_tabs_nav a').click(function () {
$(this).blur();
});
这里是另一个摆弄你的网站内容和标签的地方:我必须自己做这件事。这就是我的工作原理:
$.widget("ui.tabs", $.ui.tabs, {
_tabKeydown: function (event) {
if (event.keyCode !== 38 && event.keyCode !== 40) {
this._super(event);
}
}
});
您可以使用event.keyCode替换任何键的组合,甚至可以使用以下内容对其进行自定义:
$.widget("ui.tabs", $.ui.tabs, {
options: {
overrideKeyCodes: [],
},
_tabKeydown: function (event) {
var isOverride = false;
if (Object.prototype.toString.call(this.options.overrideKeyCodes) === '[object Array]') {
for (i = 0; i < this.options.overrideKeyCodes.length; i++) {
if (event.keyCode === this.options.overrideKeyCodes[i]) {
isOverride = true;
break;
}
}
}
if (!isOverride) {
this._super(event);
}
}
});
$('#MyTabs').tabs({ overrideKeyCodes: [ 38, 40 ] });
$.widget(“ui.tabs”,$.ui.tabs{
选项:{
覆盖代码:[],
},
_tabKeydown:函数(事件){
var isOverride=假;
if(Object.prototype.toString.call(this.options.overrideKeyCodes)=='[Object Array]'){
对于(i=0;i
另一种解决方案是解除li上的按键事件绑定
$(“.selector”).tabs().find(“.ui tabs nav li”).off('keydown')
似乎不起作用。以下是我的$('.wpb_tabs').tabs({activate:function(event,ui){ui.newTab.blur();},})$('.wpb_tabs.wpb_tab')。单击(函数(){$(this.blur();})代码>如果在锚上绑定click事件,它将起作用。”$('.wpb_wrapper').tabs({activate:function(event,ui){ui.newTab.blur();},})$('.wpb_tabs_nav a')。单击(函数(){$(this.blur();});'我运气不好。如果你看()你就会明白我的意思。标签仍然保留着focused@WednesdayMan:在JSFIDLE中显示您的javascript代码。如果您查看我在答案中包含的第二个FIDLE,上面的代码似乎可以工作。JSFIDDLE:
$.widget("ui.tabs", $.ui.tabs, {
options: {
overrideKeyCodes: [],
},
_tabKeydown: function (event) {
var isOverride = false;
if (Object.prototype.toString.call(this.options.overrideKeyCodes) === '[object Array]') {
for (i = 0; i < this.options.overrideKeyCodes.length; i++) {
if (event.keyCode === this.options.overrideKeyCodes[i]) {
isOverride = true;
break;
}
}
}
if (!isOverride) {
this._super(event);
}
}
});
$('#MyTabs').tabs({ overrideKeyCodes: [ 38, 40 ] });