Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用JQuery Ui选项卡键盘导航_Javascript_Jquery_Jquery Ui_Tabs - Fatal编程技术网

Javascript 禁用JQuery Ui选项卡键盘导航

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.

我试图在我的站点上禁用JQuery选项卡的键盘导航

我已经尝试了这个问题中列出的所有事情:

但是没有用

我当前的代码是(是的,它看起来很无聊,但我很绝望,我也是JS的笨蛋)

我的网站是(我所指的页面):

链接到调用选项卡函数的JS:


任何关于我做错了什么的帮助都将不胜感激

我创建了一个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 ] });