2017-02-17 9 views
2

У меня есть javascript-код (с jquery library v3.1.1), который отлично работает на новейших браузерах Chrome, Firefox, Edge. Но он, безусловно, не работает в браузере Safari. Проверено на версии 10.0.3 и v5.1.7.JavaScript: SyntaxError: Ожидаемый токен 'in' (Safari)

Единственная ошибка, которую я вижу из журнала консоли: SyntaxError: Expected token 'in'. Проблемные линии:

var collapsenumber = jQuery.makeArray(document.getElementsByClassName("panel panel-default")); 
for (let i = 0; i < collapsenumber.length; i++) { 
*my.js:288SyntaxError: Expected token 'in'* 
    $('#collapse' + i).on('shown.bs.collapse', function() { 
    $('#s' + i).goTo(); 
    }); 
}; 

Это общая проблема несовместимости с новым jquery? Или я могу как-то изменить этот код части, чтобы он работал?

+2

Любое изменение, если вы замените let с var? – Mihai

+1

'$ ('. Panel .panel-default'). On ('показано.bs.collapse', function() {$ ('# s' + $ ('. Panel .panel-default'). Index (this) .index(). goTo();}); ' – Tushar

+0

Да, действительно, есть изменения. Поэтому мне нужно каким-то образом изменить эту часть. Спасибо. – Vitaliy

ответ

1

Я подозреваю, что Safari отстает от реализации ES6. Так как это часть ES6, замените let с var.

for (var i = 0; i < collapsenumber.length; i++) { 
+0

Хм, может быть, вы также можете помочь изменить код с помощью var, чтобы переменная 'i' отображалась во втором блоке, внутри функции()? – Vitaliy

+1

Уже управляется с помощью index() :) – Vitaliy