2014-04-23 1 views
1

내 사이트의 JQuery 탭에 대한 키보드 탐색을 사용하지 않으려 고합니다. Prevent default jquery-ui tab behaviour when using keyboard navigationJQuery Ui 탭 키보드 탐색 사용 안 함

하지만 아무 소용이 :

이 질문에 나열된 모든 일을 시도했습니다.

내 현재 코드가입니다 (예 나는 또한 JS에서 멍청한 놈이야, 그것은 nooby을 보이지만 내가 급해요)

$.widget(".wpb_tabs, .wpb_tab, .wpb_tab a, .wpb_tour_tabs_wrapper", $.ui.tabs, { 
options: { 
    keyboard: true 
}, 
_tabKeydown: function(e) { 
    if(this.options.keyboard) { 
    this._super('_tabKeydown'); 
    } else { 
    return false; 
    } 
} 
}); 

jQuery('.wpb_tabs, .wpb_tab, .wpb_tab a, .wpb_tour_tabs_wrapper').tabs({ 
activate: function(e, ui) { 
e.currentTarget.blur(); 
} 
}); 

내 웹 사이트입니다 (페이지 메신저 다스 려에) : http://safercareltd.com/care-and-advice/ JS에

링크 탭 기능을 호출하는 님 같은http://safercareltd.com/wp-content/plugins/js_composer/assets/js/js_composer_front.js

어떤 도움을 내가 D입니다 잘못된 것은 크게 감사 할 것입니다.

답변

0

나는 jsfiddle를 만들었습니다. 그것은 당신이하고있는 일에 대한 해결책입니다. 당신의 HTML 구조에 따르면

$('#tabs').tabs({ 
    activate: function (event, ui) { 
     ui.newTab.blur(); 
    }, 
}); 
$('#tabs a').click(function() { 
    $(this).blur(); 
}); 

: http://jsfiddle.net/lotusgodkk/GCu2D/15/

수정 : 그냥했다 http://jsfiddle.net/lotusgodkk/GCu2D/17/

+0

$(".selector").tabs().find('.ui-tabs-nav li').off('keydown')

은 작동하지 않습니다. 다음은 '$ ('. wpb_tabs ')입니다. 탭 ({ activate : function (event, ui) { ui.newTab.blur(); }, }}); $ ('.wpb_tabs .wpb_tab'). ($ (this) .blur(); }) ' –

+0

클릭 이벤트를 앵커에 바인딩하면 작동합니다. '$ ('.wpb_wrapper '). 탭 ({활성화 : 함수 (이벤트, UI) {ui.newTab.blur();})}; $ ('.wpb_tabs_nav a'). (function() {$ (this) .blur();}); ' –

+0

stll no luck. 당신이 (http://safercareltd.com/care-and-advice/)를 본다면 당신은 내가 무엇을 의미하는지 보게 될 것이다. 탭에 여전히 초점이 맞춰져 있습니다. –

1

: 여기

$('.wpb_wrapper').tabs({ 
    activate: function (event, ui) { 
     ui.newTab.blur(); 
    }, 
    }); 
    $('.wpb_tabs_nav a').click(function() { 
     $(this).blur(); 
    }); 

사이트의 콘텐츠 및 탭 또 다른 바이올린입니다 여기 링크입니다 이 일을 직접해라. 이것은 나를 위해 일한 것입니다 : 다른 솔루션에를 keyDown 이벤트 바인딩을 해제하는 것입니다

$.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 ] }); 
0

:

$.widget("ui.tabs", $.ui.tabs, { 
    _tabKeydown: function (event) { 
     if (event.keyCode !== 38 && event.keyCode !== 40) { 
      this._super(event); 
     } 
    } 
}); 

당신은 같은 뭔가 event.keyCode를 사용하여 키의 조합을 대체하고 심지어 사용자 정의 할 수 있습니다 리.