2017-01-09 16 views
6

Я создал гибрид приложение, в котором я использовал bxslider и помещенный DIV внутри него, как следовать,DOMException не удалось выполнить «setPointerCapture» на «Element» и «releasePointerCapture»

<div class="bxslider"> 
      <div id="chart1" style="text-align:center"> 
       <span id="barChartTitle">Bar Chart</span> 
       <svg id="chartCanvas" class="margintop40"></svg> 
      </div> 
      <div id="chart2" style="text-align:center"> 
       <span id="trendChartTitle">Trend Chart</span> 
       <svg id="chartCanvas" class="margintop40"></svg> 
      </div> 
     </div> 

, когда я когда-либо сделать контакт над bxslider в представлении HTML я получаю следующее сообщение об ошибке,

jquery.bxslider.js:1109 Uncaught DOMException: Failed to execute 'setPointerCapture' on 'Element': InvalidPointerId 
    at HTMLDivElement.onTouchStart (http://localhost:8100/js/jquery.bxslider.js:1109:34) 
    at HTMLDivElement.dispatch (http://localhost:8100/js/jquery-3.1.1.min.js:3:10315) 
    at HTMLDivElement.q.handle (http://localhost:8100/js/jquery-3.1.1.min.js:3:8342) 
onTouchStart @ jquery.bxslider.js:1109 
dispatch @ jquery-3.1.1.min.js:3 
q.handle @ jquery-3.1.1.min.js:3 
jquery.bxslider.js:1234 Uncaught DOMException: Failed to execute 'releasePointerCapture' on 'Element': InvalidPointerId 
    at HTMLDivElement.onTouchEnd (http://localhost:8100/js/jquery.bxslider.js:1234:32) 
    at HTMLDivElement.dispatch (http://localhost:8100/js/jquery-3.1.1.min.js:3:10315) 
    at HTMLDivElement.q.handle (http://localhost:8100/js/jquery-3.1.1.min.js:3:8342) 

Я искал много, но не мог понять, почему происходит ошибка, пожалуйста, помогите.

+0

У меня такая же проблема. Мои галереи Bxslider работали нормально, пока я не проверил на днях, и начал давать мне эту ошибку. Интересно, что ошибка возникает только на устройствах Android, а не на эмуляторе. – Daniela

+0

Я разрабатываю гибридное приложение, поэтому при тестировании приложения в браузере Chrome с помощью симулятора я обнаружил эти ошибки в консоли, эта ошибка возникает, если я нажимаю на Bxslider. – Selva

+0

Вы нашли решение? Я застрял, поскольку никакие другие слайды не объединяются так аккуратно, как bxslider. – Daniela

ответ

6

Обходной путь, который работает. Используйте этот фрагмент кода:

var chromePointerEvents = typeof PointerEvent === 'function'; if (chromePointerEvents) { if (orig.pointerId === undefined) { return; } } 

Вставка после:

touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; 

файла jquery.bxslider.js

Больше информации здесь read simplicitytrade answer on Github.

+0

Большое спасибо @Daniela, ваше решение работает отлично. – Selva

+0

Где вы вставляете этот код? –

+1

@BobSwager поиск в jquery.bxslider.js для touchPoints = (typeof orig.changedTouches! == 'undefined')? orig.changedTouches: [orig]; и вставить его после этого – Daniela