Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于iPad的originalEvent.touch不工作_Javascript_Jquery_Touch - Fatal编程技术网

Javascript 用于iPad的originalEvent.touch不工作

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

一直在到处寻找如何在iPad上使用“滑杆”来实现这一点。我基本上使用了这一功能&与我的
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文件,一旦我插入它,它马上就可以工作了。但是非常感谢你的回答!