2016-12-21 1 views
0

I 모바일 메뉴에 문제가이 사이트에 작동하지 않는 사용으로 전환이 : http://www.toscanzahoeve.be자바 스크립트가 작동하지 않는 것

모바일 메뉴 토글 (표시 PX 975 이하)가 작동하지 않습니다. javascript는 아래의 'nav'요소 ('display : none'에서 'display : block'으로 전환해야하는 스타일)가 아닌 토글 자체에 대해 작동합니다 (클래스가 '활성화'됨).

이이 작업 수행하는 사이트입니다 : http://downloadaproduct.com/

을 그리고 이것은 자바 스크립트 코드입니다 : 나는이 문제를 해결하려고 시간을 보냈다

(function(window, $, undefined) { 
'use strict'; 

$('nav').before('<button class="menu-toggle" role="button" aria-pressed="false"></button>'); // Add toggles to menus 
$('nav .sub-menu').before('<button class="sub-menu-toggle" role="button" aria-pressed="false"></button>'); // Add toggles to sub menus 

// Show/hide the navigation 
$('.menu-toggle, .sub-menu-toggle').on('click', function() { 
    var $this = $(this); 
    $this.attr('aria-pressed', function(index, value) { 
     return 'false' === value ? 'true' : 'false'; 
    }); 

    $this.toggleClass('activated'); 
    $this.next('nav, .sub-menu').slideToggle('fast'); 

}); 

})(this, jQuery); 

, 어떤 도움을 크게 감상 할 수있다!

감사합니다, 스테판

당신은 당신의 코드에 대해 "작동하지 않습니다",하지만이 볼 일을 지정하지 않은
+1

당신이 더 구체적 일 수 있습니다

나는 당신이 원하는 것은 결과 (true 또는 false 허용 값을 모두 반환) 함수의 신체의 아니지만 함수 자체라고 생각합니다 우리가 효과적으로 당신을 도울 수 있습니까? "효과가 없다"는 것은 무엇을 의미합니까? 오류가 있었습니까? 그렇다면 어떤 줄이 있고 정확한 오류 메시지는 무엇입니까? –

+1

당신은 jQuery를 포함하고 있지 않으므로 (당신은'slideToggle' 할 수 없습니다) 그리고 선택은'navs'를 찾지 만'.sub-menu'가 아니라'next'도 사용할 수 있습니다. 당신은 jQuery를 포함 시켰고, 다음에 형제를 검색했다. 반면에'nav' 엘리먼트는'this'보다 먼저 나온다. – Nate

답변

1

: 여기

$this.attr('aria-pressed', function(index, value) { 
    return 'false' === value ? 'true' : 'false'; 
}); 

을, 당신은의 값을 설정하는 aria-pressed 함수에 대한 속성 (마치 이벤트 핸들러 인 것처럼). 이 시나리오에서는 함수가 실제로 실행되지 않습니다. 전체 함수가 단순히 속성의 값이됩니다.

W3C Spec에 따르면,이 속성은 다음 값을 가질 수 있습니다

  • 참/거짓 : 값 기본 "false"를 값으로, true 또는 false 나타내는.
  • 트라이 스테이트 : 중간 값이 인 "true"또는 "false"를 나타내는 값입니다. 달리 지정되지 않는 한 기본값은 "false"입니다.
  • 은 참/거짓/ 정의되지 않은 :>과 더불어, 기본을 참 또는 거짓 나타내는 값이 "정의되지 않은"상태 또는 속성을 나타내는 값이 관련되지 입니다.
  • ID 참조 : 동일한 문서의 다른 요소의 ID에 참조
  • ID 참조 하나 이상의 ID 참조 목록을 나열.
  • 정수 : 분수 구성 요소가없는 수치입니다.
  • 숫자 : 모든 실제 수치. string 제한되지 않은 값 유형입니다.
  • 토큰 : 허용되는 값 집합 중 하나입니다.
  • 토큰 목록 : 하나 이상의 토큰 목록입니다.

여기서 알 수 있듯이 함수는 값으로 사용할 수 없습니다.

$this.attr('aria-pressed', ('false' === value ? 'true' : 'false')); 
관련 문제