2014-01-09 5 views
1

`반환하지 않는 이벤트를 활성화합니다. documented activate event 사용하여 기능하고 eventui 내부 가능한 두 개체가 있어야한다. Chrome, Firefox, Safari 및 Internet Explorer 11에서는 ui 개체가 꽉 찼습니다. 그러나 IE10 이하에서는 개체가 대부분 비어 있습니다. 이 나는 ui 객체를 통해 접근 할 필요가 각 탭에서 특정 콘텐츠를 활성화하는 데 사용되는 내 패널 data 속성이 있지만, 이들 모두는 IE10과 낮은에 실패합니다.jQuery를 UI 탭 - 내가 jQuery를 UI의 <a href="http://jqueryui.com/tabs/" rel="nofollow">Tabs widget</a> 페이지에를 사용하고 IE10에서 ui` 낮은

<script> 
$(document).ready(function() { 
    $('#community-areas').tabs({ 
     activate: function(event, ui) { 
      console.log(ui.newPanel[0].dataset.latitude); 
      console.log(ui.newPanel[0].dataset.longitude); 
     } 
    }); 
}); 
</script> 

<div id="community-areas"> 
    <ul> 
     <li><a href="#tab-1">Tab 1</a></li> 
     <li><a href="#tab-2">Tab 2</a></li> 
    </ul> 
    <div id="tab-1" data-communityid="water" data-latitude="29.266" data-longitude="-81.1379"></div> 
    <div id="tab-2" data-communityid="break" data-latitude="29.0516" data-longitude="-81.029"></div> 
</div> 

크롬, 파이어 폭스, 사파리, 그리고 IE11에서,이 코드는 성공적으로 위도와 경도를 기록합니다

는 다음과 같은 코드를 생각해 보자. (이후 IE에 대한 console.log(JSON.stringify(ui));을 추가 정의되지 않았거나 널 (null) 참조

의 특성 '위도'를 가져올 수 없습니다 :

SCRIPT5007 그러나, 아래 IE10과에서 다음과 오류가 콘솔에 표시 IE는 콘솔에서 개체를 탐색하는 것을 허용하지 않습니다.) 출력 :

{"oldTab":{"0":{},"length":1,"prevObject":{"0":{},"1":{},"2":{},"3":{},"4":{},"length":5,"prevObject":{"0":{},"length":1,"prevObject":{"0":{},"length":1,"prevObject":{"0":{},"context":{},"length":1},"context":{},"selector":"ol,ul"},"context":{}},"context":{},"selector":"> li:has(a[href])"},"context":{}},"oldPanel":{"length":0,"prevObject":{"0":{},"context":{},"length":1},"context":{},"selector":"#tab-2"},"newTab":{"0":{},"length":1,"prevObject":{"0":{},"context":{},"length":1},"context":{}},"newPanel":{"0":{},"length":1,"prevObject":{"0":{},"context":{},"length":1},"context":{},"selector":"#tab-1"}} 

이 동작을보고 해결 방법을 알고있는 사람이 있습니까? 이와 유사한 또 다른 질문이있는 경우

나는 죄송합니다. "ui"가 "jQuery UI"에 있기 때문에 "ui"가 포함 된 Google 검색 결과가 흐려집니다.

답변

3

dataset 속성은 IE> = 11에서만 지원되며 이전 버전에서는 jQuery data을 대신 사용합니다.

참조 : http://caniuse.com/dataset

코드 :

$(document).ready(function() { 
    $('#community-areas').tabs({ 
     activate: function (event, ui) { 
      console.log($(ui.newPanel[0]).data('latitude')); 
      console.log($(ui.newPanel[0]).data('longitude')); 
     } 
    }); 
}); 

데모 : http://jsfiddle.net/IrvinDominin/Xzm8K/1/

+0

감사합니다! jQuery의'data'가 트릭을했습니다. 내가 그것을 어떻게 간과했는지에 관해 명확히하지 않는다. –

+0

@MichaelIrigoyen 당신을 환영합니다! –

관련 문제