2012-01-25 10 views
2

iPad上で「sliderBar」の操作をどのように行うかについては、どこからでも検索しています。私mouseDown機能付きで、私はかなりの使用このhttp://www.the-xavi.com/articles/trouble-with-touch-events-jquery &ブレンド:originalEvent.touches for iPadが動作していません

function handleSliderSlide(event, ui) { 
    if(event.originalEvent.touches && event.originalEvent.touches.length) { 
     event = event.originalEvent.touches[0]; 
    } else if (event.originalEvent.changedTouches && event.originalEvent.changedTouches.length) { 
     event = event.originalEvent.changedTouches[0]; 
    } 

    if(event.originalEvent.type === 'keydown') { 
     var maxScroll = $('#yearsWrapper').attr('scrollWidth') - $('#yearsWrapper').width(); 
     var years = $('#dates li').length - 1; 
     $('#sliderBar').slider('option', 'step', years); 
     $('#yearsWrapper').attr({ 
      scrollLeft: ui.value * (maxScroll/100) 
     }); 
    } else { 
     var maxScroll = $('#yearsWrapper').attr('scrollWidth') - $('#yearsWrapper').width(); 
     $('#sliderBar').slider('option', 'step', 1); 
     $('#yearsWrapper').attr({ 
      scrollLeft: ui.value * (maxScroll/100) 
     }); 
    } 
} 

かなりこのようなHTMLコード:

あなたに:

<div id="timeline"> 
    <div id="dates"> 
     <ul> 
      <li> 
       <a href="#year1">1900</a> 
      </li> 
      <li> 
       <a href="#year2">2000</a> 
      </li> 
     </ul> 
     <div id="sliderBarWrapper"> 
      <div id="sliderBar" class="ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all"> 
       <a href="#" class="ui-slider-handle ui-state-default ui-corner-all" style="left: 34%;"></a> 
      </div> 
     </div> 
    </div> 
    <div id="yearsWrapper"> 
     <div id="years"> 
      <div class="shadow"> 
       <div id="year1"> 
        <a href="#">slider 1900</a> 
        <p>Year 1900 info</p> 
       </div> 
       <div id="year2"> 
        <a href="#">slider 2000</a> 
        <p>Year 2000 info</p> 
       </div> 
      </div> 
     </div> 
     <!-- End years --> 
    </div> 
    <!-- End yearsWrapper --> 
</div> 

答えて

0

私はここでの問題は、次のようだと思います最初にeventを最初のタッチオブジェクトで上書きします。

event = event.originalEvent.touches[0]; 
だから、基本的にあなたは私が何を指すべきではありません知っている限り event.originalEvent.touches[0].originalEvent.typeにアクセスしようとしている

if(event.originalEvent.type === 'keydown') ... 

は、その後、それはまだ元のオブジェクトだったされているかのように、あなたのeventオブジェクトを扱う(私が思います) (タッチオブジェクトとその属性を詳細に記述するhave a look at the Touch Events specification)。

これで問題は解決しますか?

+1

wow申し訳ありませんが、私のQで返事がありました。実際にjQueryライブラリの.jsファイルが挿入されてすぐに機能しませんでした。答えにはとても感謝しています! – kepinzen

関連する問題