2013-03-07 1 views
2

누르면이 슬라이드 다운 헤더가 눌려져 있습니다.iDevices에서 클릭 할 때 사용하는 버튼이 작동하지 않습니다.

DEMO : http://jsfiddle.net/ygAV2/2/

$(document).on("click", 'h1', function() { 
    if (!$(this).parent().hasClass('header-down')) { 
     $(this).parent().stop().animate({ 
      height: '100px' 
     }, { 
      queue: false, 
      duration: 600, 
      easing: 'linear' 
     }).addClass('header-down'); 
    } else { 
     $(this).parent().stop().animate({ 
      height: '30px' 
     }, { 
      queue: false, 
      duration: 600, 
      easing: 'linear' 
     }).removeClass('header-down'); 
    } 
}); 



$(document).click(function() { 
    if ($(".box_header").hasClass('header-down')) { 
     $(".box_header").stop().animate({ 
      height: '30px' 
     }, { 
      queue: false, 
      duration: 600, 
      easing: 'linear' 
     }).removeClass('header-down'); 
    } 
}); 

$(document).on("click", ".box_header", function (e) { 
    e.stopPropagation(); // This is the preferred method. 
    // This should not be used unless you do not want 
    // any click events registering inside the div 
}); 

헤더와 버튼이 컴퓨터에 괜찮 작동하지만, 내 아이폰과 아이 패드에서 작동하지 않습니다, 하나는 전에이 시도가 "나를 삭제"?

답변

-1

.live() 대신 .on의 또는 .click를 사용해보십시오 :

$('h1').live('click', function() { 
    // your code goes here... 
}); 
+0

'live()'는 jQuery 1.7에서 더 이상 사용되지 않으며 1.9에서 제거되었습니다. – BenM

+0

. 내가 살아야한다고 말했어 .live는 비난 받았어. 그래서 내가 가지고있어.? – DWTBC

+0

다른 방법이 있습니까? – DWTBC

0

이 시도 (작동해야, 아이폰 OS 시뮬레이터에 그것을 시도 - 아니 장치 현재) :

$('h1').on('click touchstart', function() { 
    // ... your code 
}); 
+0

이렇게하면 슬라이드가 새로 추가 될 때 작동하지 않습니다 상자. – DWTBC

+0

젠장. 죄송합니다. 더 이상 아이디어가없고 테스트 할 장치가 없습니다. ( – sebastian

+0

감사합니다. – DWTBC

0

나는 이것이 알고 오래된 게시물이지만 내가 발견 한 사실은 Mac OS와 iOS가 해당 레이어가 실제로 html 버튼이 아니라면 클릭 동작을 허용하지 않는다는 것입니다.

지난 주 사이트를 만들었고 모바일 메뉴가 Windows 및 Android 기기의 스팬을 사용하여 전환 할 수 있었지만 Mac OS와 iOS는 메뉴를 전환하지 않았습니다.

두 번째로 레이어를 실제 html 버튼으로 변경했습니다.

애플의 Facepalm!

관련 문제