Javascript 用于iPad的originalEvent.touch不工作
一直在到处寻找如何在iPad上使用“滑杆”来实现这一点。我基本上使用了这一功能&与我的Javascript 用于iPad的originalEvent.touch不工作,javascript,jquery,touch,Javascript,Jquery,Touch,一直在到处寻找如何在iPad上使用“滑杆”来实现这一点。我基本上使用了这一功能&与我的mouseDown功能相融合: function handleSliderSlide(event, ui) { if(event.originalEvent.touches && event.originalEvent.touches.length) { event = event.originalEvent.touches[0]; } else if (even
mouseDown
功能相融合:
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>
-
-
1900年信息
2000年信息
我认为这里的问题如下:
您首先使用第一个触摸对象覆盖事件
:
event = event.originalEvent.touches[0];
然后(我认为)您将您的事件
对象视为它仍然是原始对象:
if(event.originalEvent.type === 'keydown') ...
因此,实际上您正在尝试访问event.originalEvent.touchs[0]。originalEvent.type
,据我所知,它不应该指向任何东西(详细描述了touch对象及其属性)
这能解决你的问题吗?我认为这里的问题如下: 您首先使用第一个触摸对象覆盖
事件
:
event = event.originalEvent.touches[0];
然后(我认为)您将您的事件
对象视为它仍然是原始对象:
if(event.originalEvent.type === 'keydown') ...
因此,实际上您正在尝试访问event.originalEvent.touchs[0]。originalEvent.type
,据我所知,它不应该指向任何东西(详细描述了touch对象及其属性)
这能解决您的问题吗?哇,很抱歉,我不知道我的Q中有回复。实际上,在我插入jQuery library.js文件后,它就丢失了,并且可以立即工作。但是非常感谢你的回答!哇,对不起,我不知道我的Q中有回复。事实上,它缺少一个jQuery library.js文件,一旦我插入它,它马上就可以工作了。但是非常感谢你的回答!