2015-01-26 1 views
0

:*는 IE9에서 작동 속성 + 나는이 같은 HTML5 언어의 다양한 버튼이 몇 가지 데모 코드에서 일하고 있어요

<button class="btn btn-primary" data-method="rotate" data-option="-90" type="button" title="Rotate Left"> 
<button class="btn btn-primary" data-method="rotate" data-option="90" type="button" title="Rotate Right"> 
<button class="btn btn-primary" data-method="zoom" data-option="-0.1" type="button" title="Zoom Out"> 

이와 관련된 자바 스크립트 파일이입니다 이 작업은 다음을 수행합니다.

$(document).on("click", "[data-method]", function() { 
     var data = $(this).data(); 

     if (data.method) { 
     $image.cropper(data.method, data.option); 
     } 
    }); 

data- * 속성은 IE10 이하에서는 작동하지 않습니다. 이 코드를 리팩터링하여 구형 브라우저에서 작동시킬 수있는 좋은 방법은 무엇입니까?

    이 ID로 데이터-방법 및 데이터 옵션 값을 이동
  1. 및 클래스는 각각 속성 :

    내 초기 생각은 지금까지입니다. 하지만 버튼 당 올바른 동작을 수행하려면 if/else 문이 많이 필요합니다.

  2. 데이터 메소드와 데이터 옵션을 숨겨진 변수에 저장하십시오. 어떤 버튼을 눌렀는지 연결하는 방법을 모르겠습니다.
  3. 내게 아직 알려지지 않은 다른 것을하십시오 ... (따라서 여기에 도움을 청합니다) ...하지만 아마도 어느 정도는 jQuery가 관련되어있을 것입니다.
+2

나는 그것이 데이터 속성 만 변환 CSS를 사용할 수없는 대신을 생각하지 않습니다 그리고 당신은 다음과 같이 사용하는 $(this).data()

시도처럼 전체 데이터를 $(this).data('method')를 사용하는 대신에 점점하여 데이터를 얻어야한다 ie9, 내가 틀릴 수도 있지만 – PiniH

답변

0

data.method과 같은 데이터 속성에는 이러한 방법이 없습니다.

var data = $(this).data('method'); 
if (data) { 
    //.... 
} 
+0

하지만이 대답은 HTML5 입력 데이터 속성을 지원하지 않는 구식 브라우저에서 버튼이 계속 작동하도록 data- * 속성을 사용하는 방법을 설명하지 않습니다. 또는 jQuery가 사용할 수있는 속성 일 뿐이므로 중요하지 않습니까? –

+0

ie9 +? 그것은 .... 지원합니다. –

관련 문제